Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么';t@NotNull是否引发编译时错误?_Java_Android_Annotations - Fatal编程技术网

Java 为什么';t@NotNull是否引发编译时错误?

Java 为什么';t@NotNull是否引发编译时错误?,java,android,annotations,Java,Android,Annotations,我刚遇到注释,就开始使用它们。我制作了一个接口,它有一个带有@NotNull参数的方法签名,类似于 interface { public void test(@NotNull CustomObject c ); } 我在一个类中实现了这个方法 clazz implements interface { @Override public void test(@NotNull CustomObject c) { } } 我希望编译时newclazz().test(null)会抱怨,但事实

我刚遇到注释,就开始使用它们。我制作了一个接口,它有一个带有@NotNull参数的方法签名,类似于

 interface {
    public void test(@NotNull CustomObject c );
}
我在一个类中实现了这个方法

clazz implements interface
{
@Override
public void test(@NotNull CustomObject c)
{
}
}
我希望编译时
newclazz().test(null)
会抱怨,但事实并非如此。我使用的是基于Intellij的Android studio


如果这些注释不应该给我们带来编译时错误,那么它们是用来做什么的呢?

我认为您使用它的目的是错误的

@NotNull

@NotNull注释实际上是一个明确的约定,声明了以下内容:

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

IntelliJ IDEA会在违反这些合同时发出警告


请查看资源链接以了解更多信息

我认为您使用它的目的是错误的

@NotNull

@NotNull注释实际上是一个明确的约定,声明了以下内容:

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

IntelliJ IDEA会在违反这些合同时发出警告


请查看资源链接了解更多信息

是的,您是对的,
@NotNull
默认情况下不用于获取Java中的编译时错误。对于IntelliJ,您可以配置每次在代码中违反
@NotNull
约定时IDE都会输出警告(有关更多详细信息,请查看Jetbrains。是的,您是对的,
@NotNull
在默认情况下不用于获取Java中的编译时错误。对于IntelliJ,您可以配置IDE在每次代码中违反
@NotNull
约定时输出警告(有关更多详细信息,请查看Jetbrains)。