2011-06-24 10 views

Respuesta

6

No hay un pre-procesador "oficial" para Java, y no hay uno de terceros ampliamente utilizado.

Pero nada le impide usar cualquier preprocesador que desee en su código, si está dispuesto a vivir con el inconveniente de que los IDEs y muchas otras herramientas no lo manejarán correctamente.

Dicho esto, usted no generalmente lo necesita tampoco en Java. Prefieres proporcionar implementaciones múltiples de una interfaz común (o clases que extienden una clase base común) y elegir entre ellas en tiempo de ejecución.

Hay, sin embargo una forma limitada de la compilación condicional mediante el uso de tiempo de compilación constantes banderas booleanas:

static final DEBUG = false; 

public void frobnicate() { 
    if (DEBUG) { 
    doExpensiveFrobnicationDebugOperation(); 
    } 
    doActualFrobnication(); 
} 

Este código resultará en la llamada al método caro no ser compilado en el código de bytes de la resultante .class archivo.

+0

Esa es una buena respuesta. Mucho más útil que la mía de todos modos. +1 –

+1

Gracias, he sabido sobre esto. Sin embargo, el pre-procesador proporciona 2 beneficios: el tamaño del archivo compilado es más pequeño. Segundo: reduce la posibilidad de que la versión "gratuita" se descifre en versión "completa" (el segundo puede no ser un problema con Android, solo con PC). De todos modos, gracias por su respuesta:) – AndBie

+2

@AndBie: para ambos, un ofuscador podría ayudar. No porque haga que el código sea más difícil de descifrar (realmente no creo en eso), sino porque puede eliminar el código muerto (¡incluso los métodos que nunca se llaman!). Esa suele ser la razón por la que los ofuscadores se usan en el código J2ME, incluso cuando se trata de un software libre. –

0

No existe un preprocesador para Java, por lo tanto, desafortunadamente no se puede hacer una compilación condicional.

+0

¿De verdad? Eso es malo :(Todavía estoy esperando otra respuesta, espero que exista, o hay otra solución. – AndBie

Cuestiones relacionadas