A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 明锦添 中级黑马   /  2013-3-19 15:26  /  1303 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 明锦添 于 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()函数名

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

3 个回复

正序浏览
额。。看了半天没问题,你后边括号少了一个,这是细节问题{:soso_e127:}
回复 使用道具 举报
本帖最后由 沉默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. 少一个}的问题,添加一个就好了!要细心呃!
复制代码
回复 使用道具 举报
s 是new出来的对象   你的return s  可能有问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马