问个很zz的问题,这是啥操作?

xiaJue 发布于 2017/08/17 17:38
阅读 61
收藏 0

在AndroidStudio中写的handler,然后好像就一直有警告,我就alt+回车了下。现在才发现代码被改成这样了。还有这种操作?小白讲真还是第一次看见这种语法。是啥骚操作?

原来的代码是这样。我记得好像说这样可能会造成内存泄漏,所以说建议写成静态的内部类

class MyClassName{
   private Handler handler=new Handler(){
          @Override
          public void handleMessage(Message msg) {
             //...code
          }
   };
}

然后后面AS把它改成这样了。 

class MyClassName{
  private  Handler handler;
  {
      handler = new Handler() {
          @Override
          public void handleMessage(Message msg) {
                //....code
          }
  };
}

这是啥骚语法操作?(如果是很基础的东西大神手下留情,本人真小白)

加载中
0
风青山
风青山

初始化块:只要构造类的对象,块就会被执行。(用于对域初始化)

还有一种用static修饰的静态初始化块:类的第一次加载时执行。(用于对静态域初始化)

一般是像你这种比较复杂的情况使用。不是必需的,可以把这段代码放到构造器中。

xiaJue
xiaJue
多谢!
返回顶部
顶部