Almacenar nombres de propiedades de Java Beans como constantes y verificar su consistencia

Apache Wicket, Hibernate Criteria API y otras bibliotecas de Java utilizan nombres de propiedad como cadenas para acceder a los datos del modelo. Por ejemplo:

new PropertyModel(address, "street");

Esto define un modelo que admite la lectura de la propiedad "street" del objeto de dirección llamando al método address.getStreet ().

Un problema es que tales literales de cadena son inconvenientes y no se ven naturales en el lenguaje estáticamente tipado como Java. Puede hacer un error tipográfico en el nombre de la propiedad, por ejemplo, "stretch" y solo lo notará cuando se ejecute esta línea de código. Otro inconveniente es que la refactorización automática romperá su código porque no hay un enlace directo entre esta cadena literal "street" y la propiedad street de la clase Address expresada en el código.

Una forma de resolver este problema sería usar constantes en la clase de modelo:

class Address {
    public static final String P_STREET = "street";
...

Todos los nombres de propiedades estarán en un solo lugar. También será posible verificar que sean correctos antes de que se ejecute el código inspeccionando los archivos .class generados o usando la API de reflexión cuando se inicia la aplicación. Entonces, mi primera pregunta es, si uso este enfoque, ¿hay alguna herramienta disponible para realizar esta verificación y encontrar todos los errores? Preferiblemente integrado con maven, por lo que esta verificación será parte del proceso de construcción.

La segunda pregunta es ¿cuáles son otros enfoques para resolver este problema?

Respuesta 1

Dado que Java usa un árbol rojo-negro para implementar la clase TreeMap, es la eficiencia de put () y get () lg (N), donde N = número de claves distintas, o N = número de inserciones / recuperaciones que planea hacer ? ...

Uso de Apache HttpClient 4.5.x en la aplicación web de mi cliente que se conecta (e inicia sesión) en otra aplicación web (por ejemplo, principal). La relación entre estas 2 webapps es de muchos a muchos, lo que significa para algunos usuarios '...

¿Alguien puede sugerir una solución para el siguiente escenario? Tenemos menús de restaurantes. Cada restaurante tiene su propio menú. El objetivo es identificar los elementos en el menú, como elementos del menú, ingredientes, ...

Quiero que mi código se repita, pero reinicialice la variable a 0. Cada vez que ingreso un número, lo agrego al resultado anterior, pero quiero que se restablezca. Adjunto dos imágenes a continuación. Uno es el actual ...