当前位置: 代码迷 >> J2SE >> 关于Class.forName()解决方法
  详细解决方案

关于Class.forName()解决方法

热度:147   发布时间:2016-04-23 19:42:57.0
关于Class.forName()

class Candy{
static{
System.out.println("Loading Candy");
}
}

class Gum{
static{
System.out.println("Loading Gum");
}
}

class Cookie{
static{
System.out.println("Loading Cookie");
}
}

public class SweetShop {
public static void main(String[] args) {
System.out.println("inside man");
new Candy();
System.out.println("After creating Candy");
try{
Class.forName("Gum");
} catch(ClassNotFoundException e){
System.out.println("Couldn't find Gum");
}
System.out.println("After Class.forName(\"Gum\")");
new Cookie();
System.out.println("After creating Cookie");
}
}

运行结果:

为什么用class.forName("Gum");并没有成功加载Gum类?
------解决思路----------------------
Class.forName("Gum")返回的是类,不是对象
Class.forName("Gum").newInstance()这样才是生成对象

静态块static{}这种是在你创建这个类的第一个对象时初始化
new Candy();,new Cookie();这两个类都生成对象了
  相关解决方案