public class Singleton { 
private Singleton(){ 
System.out.println(" singleton "); 

private static Singleton s = new Singleton(); 
public static Singleton getInstance(){ 
return s; 

解决方案 »

  1.   

    public class Singleton { public static void main(String[] args) throws Exception {
    Singleton.class.newInstance();
    Singleton.class.newInstance();
    Singleton.class.newInstance();
    Singleton.class.newInstance();
    Singleton.class.newInstance();
    Singleton.class.newInstance();
    Singleton.class.newInstance();
    } private Singleton() {
    System.out.println(" singleton ");
    } private static Singleton s = new Singleton(); public static Singleton getInstance() {
    return s;
    }
    }
      

  2.   

    发了两遍啊,在这个帖子中回复了,你看一下:http://topic.csdn.net/u/20100326/13/6194d677-107d-44f7-8733-870fad0c309d.html
      

  3.   

    反射可以 也可以将那个静态方法不返回那个静态属性 而是返回 new Singleton ()
      

  4.   

    再回复此给你哈
    反射他的私有构造方法。
    主要的类:java.lang.reflect.Constructor 首先要拿到构造方法,具体如下: 
    Class clazz = Class.forName("Bean"); 
    Constructor[] cons = clazz.getDeclaredConstructors(); 
    这样拿到的cons数组保存着所有的这个类的构造函数,包括私有的和公有的。 
    迭代并调用con.toGenericString()可以拿到每个构造方法的全限定名(带修饰符,带参数)。 
    如果要拿单个构造方法,可以调用getDeclaredConstructor(Class args);来拿,只要参数匹配了就可以得到,如果没有参数,则传null即可。 然后需要调用Constructor的方法setAccessible设置为true,表示允许使用私有构造函数。这个方法是父类 AccessibleObject的方法,这个类的自类有Constructor, Field, Method分别代表构造函数,成员变量,和成员方法。也就是说使用这个方法,可以访问类的所有的方法、变量、构造函数。 最后,使用Constructor的newInstance方法就可以把对象创建出来了: 
    Bean bean = (Bean)con.newInstance(Object args); 
    没有参数的构造函数可以传null进去。 
      

  5.   

    对了 以上内容来之 http://spiritfrog.javaeye.com/blog/221432。
      

  6.   


    是不是我水平不够阿,这个单例模式怎么感觉怪怪的,
    new之间不判断一下 s是否未空吗??
      

  7.   

    public class Singleton {    public static void main(String[] args) throws Exception {
            Singleton.class.newInstance();
            Singleton.class.newInstance();
            Singleton.class.newInstance();
            Singleton.class.newInstance();
            Singleton.class.newInstance();
            Singleton.class.newInstance();
            Singleton.class.newInstance();
        }    private Singleton() {
            System.out.println(" singleton ");
        }    private static Singleton s = new Singleton();    public static Singleton getInstance() {
            return s;
        }
    }