例如
Public Object getClassInstance(String strClassName)
{
return ...;
}
调用时写getClassInstance("ArrayList"),于是得到一个ArrayList的实例?在调用程序中再如何将返回的Object转换为ArrayList类型?
.net中反射可以做到上述要求,不知JAVA怎么做。
谢谢!
Public Object getClassInstance(String strClassName)
{
return ...;
}
调用时写getClassInstance("ArrayList"),于是得到一个ArrayList的实例?在调用程序中再如何将返回的Object转换为ArrayList类型?
.net中反射可以做到上述要求,不知JAVA怎么做。
谢谢!
解决方案 »
- 请教:JToggleButton中ActionListener,ChangeListener,ItemListener的区别
- socket 读取数据的问题
- Java编译没问题,运行不了
- 怎么自动安装JRE?
- 初学JAVA,怎样获取控制台输入的一行字符串
- 请教各路大侠一个java3d包配置的问题
- j2re j2sdk JDSWK 有什么区别?
- 旧事新谈。JAVA读取电脑串口号comportidentifier.get.. 取值为空!!
- 关于文件排序的一个问题
- c版aes加密后蜜文都是整数字节,java版aes加密后可能会有负数。
- 无效的游标状态,是怎么回事?
- swt browser 怎样屏蔽鼠标右键?
转为为ArrayList的时候,用(ArrayList)a就行了
import java.util.*;public class Test
{
public static void main(String [] args)
{
try
{
ArrayList al = (ArrayList)Class.forName("java.util.ArrayList").newInstance();
}catch(Exception e)
{}
}
}
(Class.forName(strClassName))object好像就不行了,至少我这里这句话下面被画红线了。这个有办法吗?谢谢!
为嘛要(Class.forName(strClassName))object这样写
只需要强制转换就行了啊
Object o = Class.forName("java.util.ArrayList").newInstance();
ArrayList al = (ArrayList)o;
就行了啊。
至于实现类是什么还有些什么样的额外方法就可以不理会了List list = newList("java.util.ArrayList")类似写法。
______________________________在目前版本的JDK中不可以。强转的类型必须显示地声明,一般可以强转为object的父类或者接口。