sirve que patrón para javabean crear choose beans bean java boolean naming-conventions javabeans

que - pojo java beans



Nombres válidos de JavaBeans para métodos getter booleanos (3)

De acuerdo con la especificación de JavaBeans sección 8.3.2:

Propiedades booleanas
Además, para propiedades booleanas, permitimos que un método getter coincida con el patrón:

public boolean is<PropertyName>();

Este método " isPropertyName " se puede proporcionar en lugar de un método " get<PropertyName> ", o se puede proporcionar además de un método " get<PropertyName> ". En cualquier caso, si el método is<PropertyName> está presente para una propiedad booleana, entonces usaremos el método " is<PropertyName> " para leer el valor de la propiedad. Un ejemplo de propiedad booleana podría ser:

public boolean isMarsupial (); public void setMarsupial (boolean m);

En otras palabras, a menos que algo haya cambiado desde entonces, no tengo un prefijo válido, me temo :(

Es posible que algunas herramientas y bibliotecas reconozcan esas propiedades de todos modos, pero no es una buena idea confiar en ellas.

Sé que la mayoría de los nombres de variables funcionarán con "es", como isBlue() , pero también tiene "has" un prefijo válido, como hasProperty() ?


Esto es algo subjetivo, pero sí, yo diría que "tiene" es un prefijo perfectamente válido para una propiedad booleana.

edite la pregunta, como se le preguntó, no mencionó la especificación javabeans, por lo que mi respuesta no abordó ese aspecto de la pregunta. De ahí la respuesta anterior.


Jon Skeet señaló que de acuerdo con la especificación no es válida. Además, canX , shouldX y los me gusta no son válidos. Lo cual es bastante desafortunado. Aquí hay una manera de verificar si una propiedad dada tiene un getter válido:

BeanInfo info = Introspector.getBeanInfo(Item.class); Item itm = new Item(); for (PropertyDescriptor pd : info.getPropertyDescriptors()) { System.out.println(pd.getName() + " : " + pd.getReadMethod()); }

El Item clase debe ser javabean con una propiedad foo y getter. Si el método de lectura es null , significa que no hay un getter válido definido de acuerdo con las especificaciones javabeans.