Tôi đang cố gắng liệt kê các thuộc tính (nghĩa là tất cả các thuộc tính có phương thức getter) sử dụng Groovy. Tôi có thể làm điều này bằng cách sử dụng myObj.properties.each { k,v -> println v}
và hoạt động tốt. Tuy nhiên, điều đó cũng in cho toàn bộ hệ thống phân cấp siêu lớp. Nếu tôi chỉ muốn liệt kê các thuộc tính cho lớp hiện tại (và không phải là lớp siêu hạng), điều đó có khả thi không?Groovy Liệt kê tất cả các thuộc tính cho lớp
5
A
Trả lời
3
Đây là cách tôi đã tấn công nhưng có thể bạn có thể xây dựng trên đó.
class Abc {
def a
def b
}
class Xyz extends Abc {
def c
def d
}
def xyz = new Xyz(c:1,d:2)
xyz.metaClass.methods.findAll{it.declaringClass.name == xyz.class.name}.each {
if(it.name.startsWith("get")) {
println xyz.metaClass.invokeMethod(xyz.class,xyz,it.name,null,false,true)
}
}
1
Hãy thử những điều sau:
myObj.declaredFields.collect{it.name}
+0
Điều này sẽ nhận được những thứ mà không phải là tài sản mặc dù. Nó sẽ nhận được tất cả các lĩnh vực - Tôi đã tìm kiếm những thứ với getters chỉ. –
Các vấn đề liên quan
- 1. Cách liệt kê tất cả các thuộc tính của lớp
- 2. Làm thế nào để liệt kê tất cả các thuộc tính phụ thuộc của kiểm soát?
- 3. Liệt kê tất cả virtualenv
- 4. Liệt kê tất cả các chỉ mục
- 5. Liệt kê tất cả các kho SVN
- 6. Psql liệt kê tất cả các bảng
- 7. Có thể liệt kê tất cả các lớp PHP và các phương thức và thuộc tính của chúng?
- 8. Làm thế nào để lập trình liệt kê tất cả các thuộc tính được xác định?
- 9. Chức năng của PHP để liệt kê tất cả các thuộc tính của đối tượng
- 10. Liệt kê tất cả các thuộc tính của đối tượng cửa sổ?
- 11. Cách liệt kê tất cả các ngày giữa hai ngày
- 12. Liệt kê tất cả các hội đồng .NET có sẵn
- 13. Liệt kê tất cả các ổ đĩa vật lý (Windows)
- 14. Liệt kê tất cả các đối tượng của một lớp nhất định
- 15. Liệt kê tất cả các gói con của gói
- 16. Liệt kê tất cả các nhóm thư mục hoạt động
- 17. Grep Regex: Liệt kê tất cả các dòng trừ
- 18. Liệt kê tất cả các tệp trong gói homebrew
- 19. Liệt kê tất cả các tháng sử dụng oracle sql
- 20. git liệt kê tất cả các lệnh có sẵn
- 21. Eclipse: liệt kê các phương thức và biến của tất cả các lớp
- 22. Liệt kê tất cả các bảng trong postgresql information_schema
- 23. Liệt kê tất cả các trang web trong IIS C#
- 24. Applescript - liệt kê tất cả các ứng dụng đang chạy
- 25. liệt kê tất cả các quy trình trong iOS 5.0.1
- 26. Liệt kê tất cả các hàm dựng sẵn trong javascript?
- 27. Liệt kê tất cả các thư mục trong thư mục
- 28. Liệt kê tất cả các xử lý tệp đang mở?
- 29. AppleScript - Liệt kê tất cả các phông chữ
- 30. NetworkInterface.getNetworkInterfaces() không liệt kê tất cả các giao diện
nhờ. Đó là những gì tôi đã suy nghĩ, nhưng đã hy vọng có một cách "groovier" để làm điều đó. –