Играть!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?