public class AAA{     private Handler mHandler = new Handler(){  
         
         public void handleMessage(Message msg) {  
             。
         };  
     };     } 这段代码中,handler在这里是什么java语法,看起来挺怪的。mHandler是一个对象,为什么new Handler()后面要加大括号,又添加方法,可以这样吗?什么语法?

解决方案 »

  1.   

    匿名内部类,android开发很多都用到了匿名内部类
      

  2.   


    上面代码中,Handler的对象是mhandler,不是有名字吗?为什么叫匿名类呢?
      

  3.   

    AAA是匿名内部类
    Handler不是匿名内部类
    就是在AAA匿名内部类里定义了一个mhandler对象,而在mhandler对象里实现了handleMessage方法
      

  4.   


    AAA是普通类可以自定义一个类继承Handler,
    MyHandler extends Handler{...}
    Handler mhandler = new MyHandler();
    两者功能一样,现在这种实现不需要MyHandler这个自定义的类名,所以匿名。
      

  5.   


    正解!
    Myhandler是一个类,他在AAA的里面,所以是内部类。
    mhandler是MyHandler的一个对象,他不是通过自己真正的类名MyHandler创建,而是通过其父类Handler,自己的类名被隐藏了,所以是匿名类。
    加起来,就是匿名内部类了。呵呵,不知道这样你能理解不
      

  6.   

    就像注册单击事件样,比如:button.addActionListener(new ActionListener(){
       public void onClick(View v){   .......
      }
    });
    明白否?
      

  7.   

    刚开始学习java的时候都会感觉这中方式很诡异,用多了就好了!你也就明白为什么这样使用了!