Play! framework generates getters and setters cho mỗi trường công khai của một lớp mô hình khi chạy.Được hưởng lợi từ các getters và setters đã tạo trong Play! khung
public class Product {
public String name;
public Integer price;
}
sẽ được chuyển thành
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;
}
}
Tài liệu hướng dẫn giải thích thêm:
Sau đó, khi bạn muốn truy cập vào một tài sản mà bạn chỉ có thể viết:
product.name = "My product";
product.price = 58;
Đó là dịch tại thời gian tải tới:
product.setName("My product");
product.setPrice(58);
... và cảnh báo:
Bạn có thể không trực tiếp sử dụng phương thức getter và setter để truy cập các thuộc tính nếu bạn dựa vào thế hệ tự động. Các phương thức này được tạo tại thời gian chạy là . Vì vậy, nếu bạn tham khảo chúng trong mã bạn viết, trình biên dịch sẽ không tìm thấy các phương pháp và sẽ tạo ra lỗi.
Vì tôi không thể sử dụng các getters và setters này từ bên ngoài Play! dự án, tôi thấy không có lợi ích trong việc tạo ra chúng. Lợi ích so với các lĩnh vực công cộng, tái cấu trúc (đóng gói một trường và thay đổi người gọi) của tất cả các IDE hiện đại được đưa vào tài khoản là gì?
+1 câu trả lời hay. Tôi đã mở rộng quan điểm về việc xác định những người định cư và getters của riêng bạn khi tôi nghĩ rằng đó là một điểm thực sự quan trọng. – Codemwnci