今天在查看 Google 的 Android API ,关于蓝牙相关文档。发现下面这个写法比较奇怪,很好奇其中的用意,请大神们点评。
private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket; private final InputStream mmInStream; private final OutputStream mmOutStream; public ConnectedThread(BluetoothSocket socket) { mmSocket = socket; InputStream tmpIn = null; OutputStream tmpOut = null; // Get the input and output streams, using temp objects because // member streams are final try { tmpIn = socket.getInputStream(); tmpOut = socket.getOutputStream(); } catch (IOException e) { } mmInStream = tmpIn; mmOutStream = tmpOut; }
在构造函数里面,给 mmInStream 赋值的时候为何要用 tmpIn 的局部变量赋值,而不是直接只用 mmInStream = socket.getInputStream(); 虽然有注释,但还是没写到核心,这种写法有啥好处,大神们快来解答解答...
