¿Existe algún #IF y #CONST equivalente .NET en Java / Android?
Tengo un proyecto en el que hay muchos códigos disponibles sólo en determinada versión, y cuando corrijo un error tengo que arreglarlos en todas las copias. Es muy incómodo.
¿Hay #IF
y #CONST
en Java, que si la cláusula #IF
es falsa, el código no se compilará?
- HorizontalScrollView puede alojar sólo un hijo directo
- Google Places api AutocompletePrediction prediction.getDescription () MissingDespués de actualizar a Play services a 9.4.0
- Cómo encontrar texto visible en la vista de texto
- Índice de fila de tabla en TableLayout
- Manera correcta de manejar un cambio de orientación en Android
- Cómo usar correctamente Dagger2 con los nuevos componentes de arquitectura de Android
- SQLite de Android que elimina una fila específica de la base de datos
- Cómo limpiar caché de proyecto en Intellij idea como Eclipse limpio?
- Android - Constructor de actividad vs onCreate
- ¿Cómo configurar el tiempo de espera en la biblioteca de Retrofit?
- No es posible establecer dimensiones personalizadas en una propiedad de google analytics para la aplicación de Android
- ¿Cómo se repite una imagen sólo verticalmente en android?
- Añadir filtros a un video como Instagram
No hay preprocesador "oficial" para Java, y no hay un tercero que sea ampliamente utilizado.
Pero nada te impide usar cualquier preprocesador que quieras en tu código, si estás dispuesto a vivir con la desventaja que los IDE y muchas otras herramientas no manejarán correctamente.
Dicho esto, normalmente no lo necesita en Java. Prefiere proporcionar implementaciones múltiples de una interfaz común (o clases que extiendan una clase base común) y elegir entre ellas en tiempo de ejecución.
Hay, sin embargo, una forma limitada de compilación condicional mediante el uso de constantes de tiempo de compilación de banderas booleanas:
static final DEBUG = false; public void frobnicate() { if (DEBUG) { doExpensiveFrobnicationDebugOperation(); } doActualFrobnication(); }
Este código resultará en que la costosa llamada al método no se compile en el bytecode del archivo .class
resultante.
No hay tal cosa como un preprocesador para Java, por lo que desafortunadamente no se puede hacer la compilación condicional.