簡體   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