Ste*_*ett 0 java eclipse android if-statement dead-code
关于以下片段的一些解释:
我正在搞乱一些蓝牙发现电话.为此,我正在使用回调,如果BluetoothDevice找到a,将调用该回调.如果未找到设备,则参数为null:
@Override
public void provideDevice(BluetoothDevice device) {
super.provideDevice(device);
Log.v("MainActivity","device name = " +device.getName());
if(device != null) {
mBinder.start(device);
} else {
Toast.makeText(this, "No Device found", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
Eclipse告诉我else块是死代码.
如果我Log在if-block中移动调用,则警告消失:
@Override
public void provideDevice(BluetoothDevice device) {
super.provideDevice(device);
if(device != null) {
Log.v("MainActivity","device name = " +device.getName());
mBinder.start(bc);
} else {
Toast.makeText(this, "No Device found", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
我知道如果参数为null,第一个片段将抛出NPE.这不是本例中的问题.
我想知道为什么会dead code warning出现.
我可以提供完整的代码,如果这还不足以告诉我发生了什么.
您device在日志语句中取消引用.
如果你超过了那行代码,device 就不能为null,因为如果有的话,你会得到一个NPE.
这意味着该else语句是多余的,因为如果代码到达那么远,它就不可能null.
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |