Illegal modifier for the variable os; only final is permitted
时间: 2024-03-25 21:36:14 浏览: 156
final方法-软件工程ppt
这个错误是因为你在尝试修改一个非final的变量,而这个变量在匿名内部类中被引用。在匿名内部类中,只能访问final或者隐式为final的变量,因为这样才能保证内部类中访问的变量不被外部修改,从而保证线程安全。
如果你想要在匿名内部类中访问一个非final的变量,你可以将该变量赋值给一个final变量,然后在匿名内部类中引用该final变量。例如:
```
final OutputStream finalOs = os;
new Thread(new Runnable() {
@Override
public void run() {
// 在这里使用finalOs
}
}).start();
```
这样就可以在匿名内部类中访问变量os了。
阅读全文