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 static void a() {
Class c = null;
try {
// c = Class.forName("No14.practice7.Gum");
c = Class.forName("Gum");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
public class SweetShop {
public static void main(String[] args) {
System.out.println("inside main");
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");
}
}
/* Output:
inside main
Loading Candy
After creating Candy
Loading Gum
After Class.forName("Gum")
Loading Cookie
After creating Cookie
*///:~
如上,我的疑惑是:为什么main方法中的Class.forName()方法参数中可以使用类名的形式,而Cokie类的a方法中的Class.forName()使用类名的形式就会报ClassNofound错误,必须使用包名.类名才能通过编译呢?
https://blog.csdn.net/qq_15037231/article/details/76653743