我有一个Java对象obj具有属性obj.attr1,obj.attr2等属性通过额外的间接水平可能访问:obj.getAttr1(),obj.getAttr2(),如果不公开.
挑战:我想一个函数,一个对象,并返回一个Map<String, Object>,其中的键是字符串"attr1","attr2"等等和值对应的对象obj.attr1,obj.attr2.我想这个函数会被调用
toMap(obj),toMap(obj, "attr1", "attr3")(其中attr1和attr3是obj属性的子集),toMap(obj, "getAttr1", "getAttr3")如果有必要的话.我对Java的内省了解不多:你是如何用Java做的?
现在,我toMap()对每个我关心的对象类型都有一个专门的实现,而且它太多样板了.
注意:对于那些了解Python的人,我想要类似的东西obj.__dict__.或者dict((attr, obj.__getattribute__(attr)) for attr in attr_list)对于子集变体.