关于Class类的疑问 ( 积分: 100 )

  • 主题发起人 主题发起人 beanteen
  • 开始时间 开始时间
B

beanteen

Unregistered / Unconfirmed
GUEST, unregistred user!
在java中,我们知道一个类的名称就可以获得这个类的对象。如下:
//TestSonClass是TestClass的子类
TestSonClass abc;
Class classHandel = Class.forName("com.xxx.www.TestClass");
abc = (TestClass)classHandel.newInstance();
我的疑问是。如果classHandle是一个对象,那么classHandle这个对象是TestClass这个类的对象还是Class这个类的对象?如果是Class类的对象,那么classHandle.newInstance生成的为什么是TestClass的实例呢?
 
在java中,我们知道一个类的名称就可以获得这个类的对象。如下:
//TestSonClass是TestClass的子类
TestSonClass abc;
Class classHandel = Class.forName("com.xxx.www.TestClass");
abc = (TestClass)classHandel.newInstance();
我的疑问是。如果classHandle是一个对象,那么classHandle这个对象是TestClass这个类的对象还是Class这个类的对象?如果是Class类的对象,那么classHandle.newInstance生成的为什么是TestClass的实例呢?
 
classHandel 是Class这个类的对象,
在这里使用的是一个反射的机制,所以,最后返回的能是你想要的那个类的实例.
 
因为你把它强制转换成了TestClass
 
classHandle这个对象是TestClass这个类的对象
而TestClass类对象继承于Class类
 
使用的是java的反射机制这个问题可以这么理解classHandel是Class类的对象,而Class对象的newInstance估计也是个工厂方法根据参数com.XXX.www.sss返回具体的TestClass对象没有什么不好理解的
 
后退
顶部