首页>java频道>java教程>正文
Java双括弧技巧:不规范的语法

www.zige365.com 2010-6-7 11:56:15 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
14//Method put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;  
  •    21:  pop  
  •    22:  return 
  •  
  • }  
  • 所以说白了,什么双括弧语法啊,就是代码写得不规范,才使得那么的令人费解。如果还不能理解,再列两个惯用代码来:

    1. JFrame frame = new JFrame();  
    2. frame.addMouseListener(new MouseAdapter() {  
    3.  public void mouseClicked(MouseEvent e) {  
    4.   // do womething here.  
    5.  }  
    6. });  
    7.  
    8. Thread thread = new Thread() {{ // 也学着样把大括号也连一块写了  
    9.   this.setName("作业处理线程");  
    10.  }// 如果不重新定义 run() 方法,那么后面那个大括号也能与这个并一块  
    11.  
    12.  public void run() {  
    13.   // do something here.  
    14.  }  
    15. };  
    16. thread.start();  
    17.  

    应该没问题了吧,上面是事件监听器和多线程常用的写法,如果他不把大括号连在一起,而是规范的写代码,相信您一开始也不会对所谓的 Double Brace Syntax 有太多的困惑。要说这种初始化方法运用到集合中还挺方便的,只是无端的多了些匿名类。

    刚开始我看到这种Java双括弧写法也是把它奉若圣经,对它只一知半解,昨天在用 XStream 把一个对象生成 XML 文件时,其中有一个 List 属性,我就借用了这种双括符法来初始化元素,结果生成的 XML 文件走了样,原因是 XStream 的 Converter 能处理 ArrayList,但无法很好的处理生成的 ArrayList 的匿名子类。因此才回头认真的重新审视了一番这个所谓的双括符初始化语法。

    本新闻共2页,当前在第2页  1  2  

    我要投稿 新闻来源: 编辑: 作者:
    相关新闻
    关于Java语法技巧之双括弧初始化
    有关Java的synchronized关键字:同步机制总结
    双检测锁定(DCL)和Singleton模式的问题
    关于Smooks 1.2框架:处理XML与非XML的Java框架
    浅谈在Java中使用Gmail发送邮件