当前位置: 技术问答>java相关
求救:关于将类型名称字符串转变成类型相应类型的问题
来源: 互联网 发布时间:2015-05-18
本文导语: 例如: 把String类型的"abc.def.gh.Ijklmn"转换成abc.def.gh.Ijklmn类 Class clazz = Class.forName(ClassNameString); clazz.newInstance(); 上边这段代码我试过,只可以转换同一包内的类型。 怎样跨越不同的包之间灵活转换? 另外,clazz.ne...
例如:
把String类型的"abc.def.gh.Ijklmn"转换成abc.def.gh.Ijklmn类
Class clazz = Class.forName(ClassNameString);
clazz.newInstance();
上边这段代码我试过,只可以转换同一包内的类型。
怎样跨越不同的包之间灵活转换?
另外,clazz.newInstance()以后,得到的只是一个Object的实例,不是abc.def.gh.Ijklmn的实例,怎样可以真正实现abc.def.gh.Ijklmn的实例?
把String类型的"abc.def.gh.Ijklmn"转换成abc.def.gh.Ijklmn类
Class clazz = Class.forName(ClassNameString);
clazz.newInstance();
上边这段代码我试过,只可以转换同一包内的类型。
怎样跨越不同的包之间灵活转换?
另外,clazz.newInstance()以后,得到的只是一个Object的实例,不是abc.def.gh.Ijklmn的实例,怎样可以真正实现abc.def.gh.Ijklmn的实例?
|
clazz.newInstance(); 得到的就是abc.def.gh.Ijklmn实例,只不过你使用Object引用它而已,可以用类型转换转换成其它你需要的接口.
只可以转换同一包内的类型那只说明你的默认构造函数是protected的
只可以转换同一包内的类型那只说明你的默认构造函数是protected的
|
http://java.sun.com/docs/books/tutorial/reflect/object/index.html