Играть! framework генерирует методы получения и установки для каждого общедоступного поля класса модели во время выполнения.
public class Product {
public String name;
public Integer price;
}
будет преобразован в
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;
}
}
В руководстве объясняется далее:
Затем, когда вы хотите получить доступ к свойству, вы можете просто написать:
product.name = "My product";
product.price = 58;
Что переводится во время загрузки на:
product.setName("My product");
product.setPrice(58);
... и предупреждает:
Вы не можете напрямую использовать методы получения и установки для доступа к свойствам, если полагаетесь на автоматическую генерацию. Эти методы создаются во время выполнения. Поэтому, если вы ссылаетесь на них в написанном вами коде, компилятор не найдет методы и выдаст ошибку.
Поскольку я не могу использовать эти геттеры и сеттеры вне Play! проекта, я не вижу пользы в их создании. В чем преимущество по сравнению с общедоступными полями, рефакторинг (инкапсуляция поля и изменение вызывающих) всех современных IDE во внимание?