@NonNull不会抛出编译错误

时间:2014-05-07 13:55:32

标签: java annotations

import org.eclipse.jdt.annotation.NonNull;

  public class NullAnnotationTest {

        public void meth1(@NonNull String in) {
            System.out.println(in.length());
        }

        public static void main(String[] args) {
            NullAnnotationTest test = new NullAnnotationTest();

            test.meth1(null);
        }
    }

如果我们有@NonNull注释,我认为如果我们使用null参数调用meth1,我们将得到编译时错误。但我没有在上述程序中看到任何错误或警告。有人可以纠正我吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,此功能即 Method | Median | StdDev | ------------------------ |----------- |---------- | GetSystemTimeAsFileTime | 14.9161 ns | 1.0890 ns | UtcNow | 4.9967 ns | 0.2788 ns | 在eclipse中处于禁用状态。

请启用此功能。转到Enable annotation based null analysis。启用enter image description here

中所示的设置

启用此设置后,您将收到Window=>Preferences => Java=> Compiler => Error/Warning编译时错误。