使用xmlbeans时使用反射创建实例

时间:2010-11-30 01:36:54

标签: java reflection xmlbeans

我有一个xsd文件,其中定义了100多种类型。我使用xmlbeans绑定生成了java代码,然后我可以使用

MyType.Factory.newInstance();

获取类实例。但由于类型太多,我决定使用反射为每种类型获取创建实例。

我现在可以使用

获取MyType的类(接口)
Class clz = Class.forName("com.foo.MyType");

但不知道如何在MyType界面中定义Factory类,然后获取新实例。

任何评论或提示都表示赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:3)

你必须使用二进制名称来引用内部类:com.foo.MyType $ Factory

答案 1 :(得分:1)

那么,您在界面Factory中声明了内部类MyType?如果我有这个权利,并且如果Factory是'MyType'声明的唯一成员类,并且如果我理解你正在寻找什么,那么以下内容应该有效。

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

编辑:测试了我的答案,它确实有效。我不知道Pangea提到的技术,但这也有效,而且它比我的回答更好。代码看起来像这样。

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