你好,我希望在内部类的构造函数中初始化最终变量,但编译器强制我在声明时初始化。为什么?
我该如何处理这种情况?
public MainActivity extends Activity {
private class AcceptThread extends Thread {
private final BluetoothServerSocket mBluetoothServerSocket;
public AcceptThread() {
try {
mBluetoothServerSocket = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("BT_SERVER", UUID.fromString("a60f35f0-b93a-11de-8a39-08002009c666"));
} catch (IOException e) { }
}
// Here methods
}
}
看这里,谁回答了我在这里看起来很奇怪的问题
final
属性进行多个赋值(对null
的赋值仍然是一种赋值)。请尝试A Boschman建议的方法,并将BluetoothServerSocket
作为参数传递给AcceptThread
构造函数。 - JonKtry
块内没有被赋值,因此必须假设在赋值发生后可能会触发catch
。 - JonK