为什么@NotNull没有引发编译时错误?

时间:2016-06-10 09:34:30

标签: java android annotations

我刚看到注释,我开始使用它们。我创建了一个具有@NotNull参数的方法签名的接口,如

 interface {
    public void test(@NotNull CustomObject c );
}

我在类

中实现了该方法
clazz implements interface
{
@Override
public void test(@NotNull CustomObject c)
{
}
}

我希望new Clazz().test(null)在编译时抱怨,但事实并非如此。我使用的是基于Intellij的Android工作室。

如果这些注释不能给我们编译时错误,那么它们用于什么?

1 个答案:

答案 0 :(得分:0)

我认为你是用它来做错误的porpouse。

  

@NotNull

     

@NotNull Annotation实际上是一个明确的合同,声明如下:

     

方法不应返回null。   变量(如字段,局部变量和参数)不能保存空值。   有关更多信息和代码示例,请参阅在线操作方法。

     

如果违反这些合同,IntelliJ IDEA会发出警告。

请查看资源链接以获取更多信息https://www.jetbrains.com/help/idea/2016.1/nullable-and-notnull-annotations.html