小编Edw*_*man的帖子

如何让IntelliJ IDEA了解我的空检查方法?

我有一个方法,其中参数用@Nonnull注释标记.调用该方法的代码必须检查该值是否为null.它不是直接x != null检查,而是在另一个类上调用实用程序方法.(在实际代码中,实用程序方法还检查它是否为空字符串).

我的问题是Intellij Idea在Nonnull方法调用上显示检查警告,说我的变量"可能为null".我知道它不能为空因为实用方法检查 - 我怎么能告诉检查员呢?

由于这有点抽象,这里是我的意思的最小例子:

package org.ethelred.ideatest;

import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;

/**
 * tests annotations
 */
public class AnnotationChecker
{
    public static void main(String[] args)
    {
        String x = null;
        if(args.length > 0)
        {
            x = args[0];
        }

        if(!isNull(x))
        {
            useObject(x);
        }

        if(x != null)
        {
            useObject(x);
        }
    }

    public static boolean isNull(@CheckForNull Object o)
    {
        return o == null;
    }


    public static void useObject(@Nonnull Object o)
    {
        System.out.println(o);
    }
}
Run Code Online (Sandbox Code Playgroud)

这使用JSR 305注释. …

java nullable intellij-idea

6
推荐指数
3
解决办法
6251
查看次数

标签 统计

intellij-idea ×1

java ×1

nullable ×1