private Handler handler = new Handler() {@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 'a':
system.out.println("aa");
break;
case 'a':
dialog.cancel();
system.out.println("bb");
break;
}
}
};疑问:一般的new语法不是 private Handler handler = new Handler();
那后面{}; 是什么语法了?  

解决方案 »

  1.   

    private Handler handler 不是有名字吗?
      

  2.   


    你的private Handler handler = new Handler() {}
    右边是这样的:
    一般Handler 是个接口,实际上是用“匿名”的内部类的方式去实现,因为一般情况下,因为其类只在“媒介”中使用一次,所以匿名了,花括号里面就是 实现了 接口等的 类的实现部分,但是匿名了看不到,不知道我说的LZ能不懂我的意思。
    LZ如果不懂的话可以这样去理解:右边部分有一个类实现了 Handler接口,但是仅仅是为了实现这个接口而用不到实现类,所以匿名了,花括号里面则是实现类的实现部分。