java - 局部隐变量字段和空指针异常

标签 java nullpointerexception

我在我的 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/

相关文章:

java - 如何正确添加 JVM 系统属性标志

java - 如果主机不存在,SocketChannel 的 connect 方法将保持挂起状态

java - SQLite插入空异常?

java - NullPointerException JApplet 与 getClass().getResource

Java GDAX 身份验证的 REST 请求 HTTP GET 错误 400

java - Guice 和 JSR-330

java - 有没有办法改变 Heroku JVM 堆大小?

java - 如何通过 Main - NullpointerException 错误更改进度条的值

android - 在 fragment 内初始化 map

JAVA: Swing JButton 组件 (NullPointerException)