Non si può davvero farlo ... il modo migliore sarebbe quella di utilizzare un motore di template ... anche alcuni compilatori metterà il codice nel file di classe di fine - quelli meglio sarebbe rimuovere il codice se non è richiesto ... È necessario rendere definitive le costanti e inoltre è necessario impostarle su un valore assoluto affinché il compilatore possa rimuovere il codice.
public static final boolean ABC = true // This will be enough for the compiler to remove code
public static final boolean ABC = [any method call] // This is not enough to work and will leave the code in there
Anche in questo caso, alcuni compilatori possono ancora mettere il codice in là, anche se non è raggiungibile (è per questo che alcuni IDE vi avvertirà che il codice non è raggiungibile in modo di rimuovere il codice che non è necessario)
Tuttavia,
Le direttive sono cattive e molto probabilmente è necessario utilizzare un'implementazione di un'interfaccia invece di una direttiva! utile per la codifica di basso livello quando necessario (per ridurre al minimo la memoria del footprint) - alcuni dispositivi speciali come i pacemaker e simili, ma perché dovresti usarli in java?
Non sono sicuro, ma penso che sia possibile passare tali cose alla jvm usando '-Dname = value' e quindi usare' System.getProperty' per ottenere il valore di 'name'. –
p.s. Benvenuto in SO! – jjnguy