如何在java中抑制空指针访问警告?

如何在java中抑制空指针访问警告?,java,exception,nullpointerexception,annotations,suppress-warnings,Java,Exception,Nullpointerexception,Annotations,Suppress Warnings,我正在使用EclipseIDE 我有一个抛出NullPointerException的代码,我正在使用try/catchblock 这是我的密码- String name = null; int length = 0; try { length = name.length(); System.out.println("Number of letters in name: " + length);

我正在使用EclipseIDE

我有一个抛出
NullPointerException
的代码,我正在使用
try/catch
block

这是我的密码-

        String name = null;
        int length = 0;

        try {
            length = name.length();
            System.out.println("Number of letters in name: " + length);
        } catch(NullPointerException e) {
            System.out.println("NullPointerException occured");
        }

        System.out.println("I am being executed");
中,在具有
标识符的行上尝试
长度
我收到警告-

Null指针访问:变量名只能在此位置为Null

我试图通过使用来抑制警告-

            @SuppressWarnings("all")
            length = name.length();
这里有
标识符
长度
的行,我有错误-

Multiple markers at this line -
- Syntax error on token "length", VariableDecalaratorId expected after this token
- Null pointer access: The variable name can only be null at this location
- length cannot be resolved to a type
如何解决这个问题


我不想让我的程序显示此警告,因为我知道我在做什么。

感谢@Slaw对这个答案的评论-

我用以下方式修改了我的代码-

        String name = null;
        int length = 0;

        boolean flag = false;
        if(flag) {
            name = "abcd";
        }

        try {

            length = name.length();
            System.out.println("Number of letters in name: " + length);
        } catch(NullPointerException e) {
            System.out.println("NullPointerException occured");
        }

        System.out.println("I am being executed");
现在我不再有警告了


在这里,正如@Slaw所建议的,由于@Slaw对这个答案的评论,我确保
变量
名称
有机会不为
null
-

我用以下方式修改了我的代码-

        String name = null;
        int length = 0;

        boolean flag = false;
        if(flag) {
            name = "abcd";
        }

        try {

            length = name.length();
            System.out.println("Number of letters in name: " + length);
        } catch(NullPointerException e) {
            System.out.println("NullPointerException occured");
        }

        System.out.println("I am being executed");
现在我不再有警告了


在这里,正如@Slaw所建议的,我确保
变量
名称
有可能不为
null

使其成为非null变量将是一个很好的解决方案。现在,
name
保证为
null
。您拥有的是合法的Java。警告并不会停止代码的运行,它只是警告您可能存在的问题,以防您真的不打算这么做。@user85421谢谢,我会尝试一下。让它使变量有机会非null将是一个很好的解决方案。现在,
name
保证为
null
。您拥有的是合法的Java。警告并不会停止代码的运行,它只是警告您可能存在的问题,以防您真的不打算这么做。@user85421谢谢,我会试试。当然,它会删除警告,但这不是我的意思。我的意思是编写代码,这样它就不会抛出NPE,不管IDE/编译器是否可以对此发出警告。你为什么要强制执行NPE?事实上,我是java新手,学习了各种类型的异常以及如何处理它们。在这种情况下,我个人(可能)永远不会发现
NullPointerException
。这样的异常意味着程序的逻辑存在缺陷,最好让(部分)应用程序崩溃,然后去解决问题,这样NPE就不会再次抛出。当然,它会删除警告,但这不是我的意思。我的意思是编写代码,这样它就不会抛出NPE,不管IDE/编译器是否可以对此发出警告。你为什么要强制执行NPE?事实上,我是java新手,学习了各种类型的异常以及如何处理它们。在这种情况下,我个人(可能)永远不会发现
NullPointerException
。这样的异常意味着程序的逻辑存在缺陷,最好让(部分)应用程序崩溃,然后去解决问题,这样NPE就不会再次抛出。