这里无非是说 Java 标准对 Candy, Cookie 何时被载入没有强制性的规定,只要在使用之前被载入就可以了。而每个 JVM 的缺省ClassLoader载入类的时机有所不同。不过我现在没装 JB9,所以没法验证那个异常。
解决方案 »
- 控制其他应用程序
- JAVA学习过程中的几个问题3
- JAVA 多线程 访问网页
- 如何获取一组随机的,以屏幕为中心均匀分布的坐标组
- java中目录文件读取问题(附有我自己写的源程序),看怎么样修改才让我显示目录文件下的所有的文件名,我自己编译过,但它总是说找不到那个文件夹,希望高手帮我解决,我因为是新进来的,没什么分,希望各位原谅.
- myeclipse中使用泛型的问题
- 菜鸟求教一个GEL的问题!
- log4j的问题
- 如何标识线程
- 哪儿有applet连接服务器端数据库的例子?
- 请问Java里有没有WMI(Windows Management Instrumentation)的包?
- 请问:我的Applet为什么不能在IIS下运行?
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 main");
new Candy();
System.out.println("After creating Candy");
try {
Class.forName("mypackage.Gum");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("After Class.forName(\"Gum\")");
new Cookie();
System.out.println("After creating Cookie");
}
}这样就对了
Class.forName("")里的类名必须是带包路径的!
就能解决这样的问题。
改造一下:
try {
Class.forName("scathelloworldofjava.Gum");
} catch(ClassNotFoundException e) {
e.printStackTrace() ;
}我的输出结果:
scathelloworldofjava.SweetShop inside mainLoading CandyAfter creating CandyLoading GumAfter Class.forName("Gum")Loading CookieAfter creating Cookie