繁体   English   中英

Java 反射:使用树形图中的参数创建实例,如 python

[英]Java reflection: create a instance using params from a treemap like python

我是 python 开发人员,现在我想使用树形图中的参数创建一个 Java 实例,就像创建一个 python 实例,该实例的参数来自字典...我尝试通过 java 反射来实现。 但我找不到解决办法。

谁能帮帮我? 谢谢

不确定我是否在关注,但据我了解 - 您正在尝试动态创建 object 的属性。

好吧,这不能在 java 中完成,部分原因是该语言是静态类型的[与 python 不同]。

在java中,编译时必须创建object的所有字段 反射可以帮助你操纵对象,但不能完全改变它们的结构。

一种解决方法是使用Map<String,Object>并在那里保存属性。 使用此解决方案不需要反射 [这是一件好事,因为反射既不安全又会降低程序的整体性能]。

这是你想要的。 创建一个 map 来保留您的课程。

private static Map<String, Class<? extends MySuperClass>> classesMap = new HashMap<String, Class<? extends MySuperClass>>();

将 class 个对象放入 map

static {
      classesMap.put("PERSON_CLASS", Person.class); 
      classesMap.put("ADDRESS_CLASS", Address.class);
}

然后是返回给定 class 实例的 getInstance 方法。

private static MySuperClass getInstance(String classNameConstant) throws Exception{
     Class<? extends MySuperClass> myClass = classesMap.get(classNameConstant);
     if(myClass!=null){
        return myClass.newInstance();
     }
     return null;
}

希望这可以帮助。 注意:我不知道 python。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM