[英]Java - Create new Instance using Reflection without knowing constructor params
[英]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.