El Play! framework generates getters and setters para cada campo público de una clase de modelo en el tiempo de ejecución.¡Benefíciese de getters y setters generados en Play! marco
public class Product {
public String name;
public Integer price;
}
serán transformados a
public class Product {
public String name;
public Integer price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
}
El manual explica además:
Luego, cuando se desea tener acceso a una propiedad que sólo puede escribir:
product.name = "My product";
product.price = 58;
que se traduce en el tiempo de carga a:
product.setName("My product");
product.setPrice(58);
... y advierte:
No se puede utilizar directamente los métodos getter y setter para acceder a las propiedades si se basan en la generación automática. Estos métodos se generan en el tiempo de ejecución . Entonces, si los referencia en el código que escribe, el compilador no encontrará los métodos y generará un error.
¡Ya que no puedo usar estos captadores y localizadores desde fuera del Play! proyecto, no veo ningún beneficio en generarlos. ¿Cuál es el beneficio en comparación con los campos públicos, las refactorizaciones (encapsular un campo y cambiar las llamadas) de todos los IDEs modernos que se tienen en cuenta?
+1 buena respuesta. Me he expandido sobre el punto de definir sus propios setters y getters ya que creo que es un punto realmente importante. – Codemwnci