Java 局部隐藏变量字段和空指针异常
我在IDE(JAVA NetBeans)上收到警告,在运行时出现错误,我不明白我做错了什么 警告是关于局部变量的隐藏字段,我只想创建一个65536位的布尔数组Java 局部隐藏变量字段和空指针异常,java,nullpointerexception,Java,Nullpointerexception,我在IDE(JAVA NetBeans)上收到警告,在运行时出现错误,我不明白我做错了什么 警告是关于局部变量的隐藏字段,我只想创建一个65536位的布尔数组 public class Main { private static boolean[] BusyDevices ; /* main entry point */ public static void main(String argv[]) { boolean BusyDevices[]=
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;
}
}
}
公共类主
{
私有静态布尔[]总线设备;
/*主要入口点*/
公共静态void main(字符串argv[])
{
boolean BusyDevices[]=new boolean[65536];//4 | | deviceIDx.length()您有两个同名的变量BusyDevices
,因此会发生此问题,因为类级变量与main
方法变量冲突
尝试更改下一行中的变量名称:
boolean BusyDevices[]=new boolean[65536];//<-Here the warning
在这里,您要声明一个名为BusyDevices
Main
的类的静态字段
private static boolean[] BusyDevices ;
在这里,您在类main
的静态方法main
中声明了一个同名的局部变量
boolean BusyDevices[]=new boolean[65536];
在这种情况下,局部变量声明优先,并“隐藏”或“隐藏”类的字段
您可能打算这样做,初始化字段(而不是局部变量)
您正在创建与类级别变量同名的新局部变量。请从
main()中删除第一个boolean
method。是的,数组将被初始化为allfalse
。我不想要两个同名的变量,我只想初始化一个65536位的布尔数组。是的,这就是我想要的,谢谢。parseint可以吗?我要发送四位十六进制数。
boolean BusyDevices[]=new boolean[65536];
BusyDevices = new boolean[65536];