2010-11-30 66 views
1

我有一個xsd文件,其中定義了100多種類型。我使用xmlbeans綁定生成java代碼,然後我可以使用使用反射在使用xmlbeans時創建實例

MyType.Factory.newInstance(); 

獲取類實例。但是由於有太多類型,我決定使用反射來獲取每種類型的創建實例。

我現在可以使用

Class clz = Class.forName("com.foo.MyType"); 

得到的MyType的類(接口),但不知道該怎樣讓在MyType的接口中定義的工廠類,然後獲得新的實例想法。

任何評論或提示表示讚賞。提前致謝。

+0

您可以發佈全廠級(或以上的話)和類需要實例? – javamonkey79 2010-11-30 03:25:22

回答

3

你必須使用二進制名稱來引用內部類:com.foo.MyType $廠

1

所以,你有一個內部類Factory在你的界面MyType中聲明?如果我有這個權利,並且如果Factory是由`MyType'聲明的唯一成員類,並且如果我理解了您要查找的內容,那麼以下內容應該可以工作。

clz.getDeclaredClasses()[0].newInstance(); 

編輯:測試我的回答出來,它的工作原理。我沒有意識到Pangea提到的技術,但它也可行,而且比我的回答要好。代碼看起來像這樣。

Class.forName("MyType$Factory").newInstance(); 
+0

感謝您提供另一種解決方案。 – Gnavvy 2010-11-30 05:54:45

相關問題