Vorrei scrivere un codice di risoluzione dei problemi che posso facilmente rimuovere dalle versioni successive del debug non di debug. Mi si avvicinò con:Quanto è intelligente Java se affermazioni con variabili finali
final static boolean debug_on=true;
...
if (debug_on) { system.out.println() or logger.log(...) }
è Java abbastanza intelligente per cadere il if dal bytecode finale, se il debug == false?
Esiste una pratica migliore per raggiungere l'obiettivo di mantenere il codice di debug fuori dalla versione finale di un programma?
hai controllato il codice byte? – PermGenError
Sembra che dovrebbe essere facile da testare, compilare e quindi usare javap per vedere il bytecode. (Mi aspetterei che sia ottimizzato dal JIT, non da javac) –
Vale veramente la pena ottimizzare questo (il test) usando una variabile finale? Di solito, uno utilizza un framework di registrazione e quindi scrive istruzioni come 'if (log.isDebugEnabled()) log.debug (" blah "+ x);'. Il test viene eseguito ogni volta ma "blah" + x' non viene valutato. –