在使用局部内部类的方式在方法块中创建了一个子线程执行副业务时需要主线程里面的参数变量,总结了几个点:
局部内部类里面使用外部变量的时候,这个变量需要是final类型的或者是没有被修改过值的变量(这里的变量指八大基本数据类型的变量,引用类型的变量指向的地址不变,但引用变量的属性值可以修改)。局部内部类使用外部变量的时候建议还是使用final修饰变量或者方法的参数。
如变量aString不修改值的话,就相当于使用final修饰的变量aString,子线程里面的aString不会报错
如果修改值,就会如下图在局部内部类里面报错 如果aString使用final定义的aString被修改值的时候,变量会提前报错 (局部内部类使用外部变量的时候建议还是使用final修饰变量或者方法的参数)
引用参数变量测试,修改引用变量的属性值时,代码不会报错 如果改变引用变量引用地址的时候,会报错