大哥,我试了一下,不存在你说的这个异常,因为如果:
private Single s = new String();//去掉static
那么
public static Single getSingle()
{
return s;
}
中的static也必须去掉,因为静态不能调用非静态,除非static Single s = new String();在同一句代码中将一个对象赋给静态的。
如果public static Single getSingle(){return s;}中去掉static,那么这就不是静态方法,就不能用Single.getSingle();调用了,而构造器又私有了,不能在其他类中new了此类对象了。
都运行不了,除非你调用了反射调用!
不过,你应该是自己在这个类中加了个main方法,然后自己new自己的对象.getSlngle();的。
其实这一题的关键问题是怎么无限循环的:是因为private Single s = new Single(); //Single是成员变量,
虚拟机每次加载的时候会给其自动初始化的,也就是每次调用此类的时候他都会自动new一个新对象,
在new新对象的时候又会自动运行这段代码new出第3个对象,然后无限循环下去。
说的有些乱{:soso_e127:} |