【发布时间】:2012-07-12 23:39:28
【问题描述】:
我收到来自 eclipse 的警告,我知道我可以使用抑制警告将其删除,但我更愿意了解是什么使它可能为空。
包信息.java
@ParametersAreNonnullByDefault
package test;
import javax.annotation.ParametersAreNonnullByDefault;
test.java
package test;
public class Test {
public static void main( final String[ ] args ) {
System.out.println( new Test( "a" ).getS( ) );
}
private final String s;
public Test( final String s ) {
this.s = s;
}
public String getS( ) {
return this.s;//Null type safety: The expression of type String needs unchecked conversion to conform to '@Nonnull String'
}
}
我不明白为什么会收到此警告...
PS:
public Test( @Nonnull final String s ) { -> nullness 注释是多余的,默认情况下适用于该位置
@Nonnull private final String s; -> 没有任何变化
【问题讨论】:
-
Javadocs 应该改进理解:(另外,要小心设置器的流畅返回值——它们是不是“合法的”JavaBean 设置器,而各种工具要么抱怨它,要么根本看不到它们。IMO 最好将 JavaBean 和 fluent 方法分开。
-
我怎样才能提高对这么简单的代码的理解...我只是简单地描述了这些方法,因为您无法从 javadoc 页面中看到内容。
-
通过删除多余的 Javadocs。
-
测试包中是否也有@ParametersAreNonnullByDefault 表示法?
-
Eclipse 4.3 为字段添加了基于注释的空值分析 (bugs.eclipse.org/bugs/show_bug.cgi?id=331649)
标签: java null annotations non-nullable