import java.util.ArrayList;
import java.util.List;public class Single
{
private List<Integer> k = new ArrayList<Integer>();
private static Single instance = null; public void init()
{
k.add(10);
k.add(11);
k.add(12);
} public List<Integer> getList()
{
return k;
} private Single()
{ } public static Single getInstance()
{
if (instance == null)
{
instance = new Single();
}
return instance;
}
}
public class GetInstance
{
public static void main(String[] args)
{
Single.getInstance().init();
System.out.println(Single.getInstance().getList().size());
}
}
public class GetInstacne1
{
public static void main(String[] args)
{
System.out.println(Single.getInstance().getList().size());
}
}当GetInstance中初始化List后,为什么 getInstance1 中 取不到 List的值 ,对同一个对象的操作,怎么保存不了 List的值。。
   跪求大神解惑~
javajavasejavaee

解决方案 »

  1.   

    你这两个main弄的,把最下面的class弄掉,你这是一个文件里面,还是几个文件 你放一起显示了啊。 这样会引起困扰的骚年。
    一个程序只能有一个main入口
      

  2.   

    额 它不是只有一个对象吗 我就想 在一个main中 赋值 。然后试着在另一个main中取值
      咋就取不到呢?
      

  3.   


     import java.util.ArrayList;
    import java.util.List;
     
    public class Single
    {
        private List<Integer> k = new ArrayList<Integer>();
        private static Single instance = null;
     
        public void init()
        {
            k.add(10);
            k.add(11);
            k.add(12);
        }
     
        public List<Integer> getList()
        {
            return k;
        }
     
        private Single()
        {
     
        }
     
        public static Single getInstance()
        {
            if (instance == null)
            {
                instance = new Single();
            }
            return instance;
        }
    }
    public class GetInstance
    {
        public static void main(String[] args)
        {
            Single.getInstance().init();
            run1();
            run2();
        }
        public void run1(){
            System.out.println(Single.getInstance().getList().size());
        }
         public void run2(){
            System.out.println(Single.getInstance().getList().size());
        }
    }