我刚看到注释,我开始使用它们。我创建了一个具有@NotNull参数的方法签名的接口,如
interface {
public void test(@NotNull CustomObject c );
}
我在类
中实现了该方法clazz implements interface
{
@Override
public void test(@NotNull CustomObject c)
{
}
}
我希望new Clazz().test(null)
在编译时抱怨,但事实并非如此。我使用的是基于Intellij的Android工作室。
如果这些注释不能给我们编译时错误,那么它们用于什么?
答案 0 :(得分:0)
我认为你是用它来做错误的porpouse。
@NotNull
@NotNull Annotation实际上是一个明确的合同,声明如下:
方法不应返回null。 变量(如字段,局部变量和参数)不能保存空值。 有关更多信息和代码示例,请参阅在线操作方法。
如果违反这些合同,IntelliJ IDEA会发出警告。
请查看资源链接以获取更多信息https://www.jetbrains.com/help/idea/2016.1/nullable-and-notnull-annotations.html