我在我的 IDE (Java NetBeans) 中收到警告并在运行时出错,我不明白我做错了什么。
警告是关于局部变量的隐藏字段,我只想创建一个 65536 位的 boolean 数组。
public class Main
{
private static boolean[] BusyDevices ;
/* main entry point */
public static void main(String argv[])
{
boolean BusyDevices[]=new boolean[65536];//<-Here the warning
}
public static boolean isDeviceBusy(String deviceIDx)
{
if(deviceIDx.length()>4 || deviceIDx.length()<4)
{
return false;
}
try
{
return BusyDevices[Integer.parseInt(deviceIDx, 16)];
}
catch(Exception e)
{
Print.logException("Error deviceIDx:" + deviceIDx, e);
return false;
}
}
}
我认为我在调整 boolean 数组大小时做错了什么;或者可能是转换错误? 另外,我需要从所有位都处于错误状态开始,这是默认状态吧?
最佳答案
您有两个具有相同名称的变量 BusyDevices
因为这个问题发生了,因为类级别变量与 main
方法变量冲突。
尝试更改以下行中的变量名称:
boolean BusyDevices[]=new boolean[65536];//<-Here the warning
作为
BusyDevices=new boolean[65536];//No duplicate variable now, variable type declation is not required
关于java - 局部隐变量字段和空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33484210/