关于在java类中的方法添加TextChangedListener时的一个报错有关问题

关于在java类中的方法添加TextChangedListener时的一个报错问题
简化一个代码,如下
就是类里面有个方法
public class HomeActivity extends Activity {

   private void showSetupPwdDialog() {
       et_setup_confirm = (EditText) view.findViewById(R.id.et_setup_confirm);
      TextWatcher mWatcher;
      mWatcher = new TextWatcher(){...}
      et_setup_confirm.addTextChangedListener(mWatcher);
   }


如果我把et_setup_confirm.addTextChangedListener(mWatcher);放在 TextWatcher mWatcher;和 mWatcher = new TextWatcher(){...}前面就会报错,但是放在如上放在后面就不报错,有点不能理解,java不是编译语言吗?
关于在java类中的方法添加TextChangedListener时的一个报错有关问题
关于在java类中的方法添加TextChangedListener时的一个报错有关问题
关于在java类中的方法添加TextChangedListener时的一个报错有关问题
------解决思路----------------------
第一个图应该是在这个变量还未声明时就使用所以报错:
因为java、c++的方法内部是自上而下顺序执行

第二个图错误应该是使用了还未赋值的局部变量
如果是全局变量,那么可以不用写=null之类的,因为系统会赋予默认值
但是你那个是局部变量(临时变量)所以要自己主动赋值。

图三就对了,你即在使用前创建了变量,也在使用前赋值了