有关Class对象中Class.forName("package.classname")的疑惑?
首先大家都知道产生Class对象的同时会对该Class对象进行初始化(若以前没有初始化过)
我想问的是这个“初始化”与普通的初始化(通过new 对象)是否一样?
下面的例子通过Class.forName("package.classname")初始化后发现它只初始化了静态域,而未初始化构造函数!这是为什么?
package exc;class came1 { static{ System.out.println("staticaa"); } public came1(){ System.out.println("came1"); }}class came2 extends came1{ static{ System.out.println("staticbb"); } public came2(){ System.out.println("came2"); }}public class clo { public static void main(String [] args) throws ClassNotFoundException{ Class c=null; c=Class.forName("exc.came2"); Class cy=c.getSuperclass(); System.out.println("cname="+cy.getName()+"is interface:"+cy.isInterface()); } }