En ocasiones, las estructuras de datos deben tener ciertas relaciones que no se pueden describir directamente en Java, pero que es bueno verificar tan pronto como sea posible cuando se edite el código. Los ejemplos clásicos son que una matriz es lo suficientemente grande o que las enumeraciones en módulos diferentes tienen miembros correspondientes.¿Cómo afirmar algo en tiempo de compilación en Java?
BOOST proporciona una función de "afirmación estática" en C++ que incluso proporciona errores medio decentes cuando fallan las aserciones; ¿Alguien sabe cómo construir una instalación de aserciones en tiempo de compilación en Java?
Edición: Acabo de ver un ejemplo perfecto: this clase de Eclipse tiene dos matrices constantes que se supone que son de la misma longitud. Si ese fuera mi código, me gustaría que el compilador me diga si tienen longitudes diferentes.
No sé si acepto que "las estructuras de datos deben tener ciertas relaciones que no se pueden describir directamente en Java". Sus ejemplos parecen inválidos. La relación del tamaño de una matriz con el resto del programa se puede expresar definiendo el tamaño de la matriz con una variable. Y si tiene un paquete Enum en un solo paquete, ¿por qué simplemente no lo haría referencia de otro? De hecho, no puedo pensar en ninguna razón para que múltiples Enums tengan los elementos correspondientes. Si se supone que Foo tiene los mismos elementos que Bar, ¿por qué no usar Foo en todos lados? ¿No es ese el objetivo de un Enum? –
¿Puede proporcionar un ejemplo más específico del tipo de cosa que le gustaría poder afirmar de esta manera? –