2010-07-22 28 views
6

Groovy Beans là tuyệt vời nhưng tôi chỉ tò mò nếu nó có thể tuyên bố một thành viên lớp học tư nhân và không tạo ra accessors cho nó dễ dàng? Trang http://groovy.codehaus.org/Groovy+Beans>Groovy Beans không bao gồm chủ đề này. Điều duy nhất mà tôi có thể nghĩ đến là xác định những người truy cập và đặt chúng ở chế độ riêng tư.Làm cách nào để vô hiệu hóa việc tạo ra các trình truy cập Groovy?

Trả lời

10

Groovy sẽ không thêm người truy cập nếu thành viên được khai báo với công cụ sửa đổi truy cập: riêng tư, được bảo vệ hoặc công khai. Nếu bạn không muốn người truy cập, chỉ cần thêm bất kỳ công cụ sửa đổi nào là thích hợp. Dưới đây là một ví dụ minh họa này:

class Test1 { private int blat } 
println Test1.metaClass.getMethods()*.name.findAll { it.endsWith("Blat") } 
class Test2 { protected int blat } 
println Test2.metaClass.getMethods()*.name.findAll { it.endsWith("Blat") } 
class Test3 { public int blat } 
println Test3.metaClass.getMethods()*.name.findAll { it.endsWith("Blat") } 
class Test4 { int blat } 
println Test4.metaClass.getMethods()*.name.findAll { it.endsWith("Blat") } 

Prints:

[] 
[] 
[] 
[getBlat, setBlat] 
+0

Đó là khá mát mẻ. Tôi đã chỉ giả định rằng các thành viên công khai có người truy cập của họ được tạo tự động nhưng không được bảo mật hoặc được bảo vệ. – Blacktiger

+0

Vâng, trên thực tế nó có vẻ như "công chúng" NÊN làm cho accessors nhưng tôi sẽ phải nghiên cứu thêm. – Vinny

Các vấn đề liên quan