黑马程序员技术交流社区

标题: 很奇怪!求解释 [打印本页]

作者: 明锦添    时间: 2013-3-19 15:26
标题: 很奇怪!求解释
本帖最后由 明锦添 于 2013-3-19 21:31 编辑

饿汉式
class Single_1
{
  private static Single_1 s=new Single_1();
  private Single_1(){}
  public static Single_1 getInstance()
  {
   return s;
  }
  }
懒汉式
class Single_2
   {
     private static Single_2 s=null;
   private Single_2(){}
   public static Single_2 getInstance()
   {
    if(s==null)
      {
     synchronized(Single_2.class)
      {
       if(s==null)
       s=new Single_2();
    }
    }
     return s;
     }这两个单例模式为什么在eclipse中会报错,报错的地方是定义为类变量的s和getInstance()函数名
作者: 宋耀冬    时间: 2013-3-19 16:31
s 是new出来的对象   你的return s  可能有问题
作者: 沉默de羔羊    时间: 2013-3-19 17:25
本帖最后由 沉默de羔羊 于 2013-3-19 17:26 编辑
宋耀冬 发表于 2013-3-19 16:31
s 是new出来的对象   你的return s  可能有问题
  1. public class Single_1 {
  2.         private static Single_1 s = new Single_1();

  3.         private Single_1() {
  4.         }

  5.         public static Single_1 getInstance() {
  6.                 return s;
  7.         }
  8.         public static void main(String args[]){
  9.                 System.out.println(Single_1.getInstance());
  10.         }
  11. }
  12. class Single_2{
  13.   private static Single_2 s=null;
  14.   private Single_2(){}
  15.   public static Single_2 getInstance(){
  16.           if(s==null){
  17.                   synchronized(Single_2.class){
  18.                           if(s==null)
  19.                           s=new Single_2();
  20.                   }
  21.           }
  22.           return s;
  23.   }
  24. }---这里你没有加结束括号!
  25. 少一个}的问题,添加一个就好了!要细心呃!
复制代码

作者: 安鹏宇    时间: 2013-3-19 17:57
额。。看了半天没问题,你后边括号少了一个,这是细节问题{:soso_e127:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2