Tôi có một đối tượng Java obj
có thuộc tính obj.attr1
, obj.attr2
vv Các thuộc tính được có thể truy cập thông qua một cấp thêm về mình: obj.getAttr1()
, obj.getAttr2()
, nếu không được công khai.Java mẫn: đối tượng để lập bản đồ
Thách thức: Tôi muốn có một chức năng mà phải mất một đối tượng, và trả về một Map<String, Object>
, nơi các phím là chuỗi "attr1"
, "attr2"
vv và giá trị này là các đối tượng tương ứng obj.attr1
, obj.attr2
. Tôi tưởng tượng chức năng sẽ được gọi với một cái gì đó giống như
toMap(obj)
,- hoặc
toMap(obj, "attr1", "attr3")
(nơiattr1
vàattr3
là một tập hợp con củaobj
's thuộc tính), - hoặc có lẽ
toMap(obj, "getAttr1", "getAttr3")
nếu cần thiết.
Tôi không biết nhiều về nội tâm của Java: làm cách nào bạn làm điều đó trong Java?
Hiện tại, tôi có một triển khai chuyên ngành toMap()
cho từng loại đối tượng mà tôi quan tâm và quá nhiều bản mẫu.
LƯU Ý: dành cho những ai biết Python, tôi muốn một cái gì đó giống như obj.__dict__
. Hoặc dict((attr, obj.__getattribute__(attr)) for attr in attr_list)
cho biến thể tập hợp con.
Có phải đệ quy không? – biziclop
@biziclop: không, không có đệ quy – Radim