相关疑难解决方法(0)

Java内省:要映射的对象

我有一个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")(其中attr1attr3obj属性的子集),
  • 或者toMap(obj, "getAttr1", "getAttr3")如果有必要的话.

我对Java的内省了解不多:你是如何用Java做的?

现在,我toMap()对每个我关心的对象类型都有一个专门的实现,而且它太多样板了.


注意:对于那些了解Python的人,我想要类似的东西obj.__dict__.或者dict((attr, obj.__getattribute__(attr)) for attr in attr_list)对于子集变体.

java introspection

38
推荐指数
5
解决办法
5万
查看次数

标签 统计

introspection ×1

java ×1