将泛型中的@SuppressWarnings(“unchecked”)添加到单行会生成 eclipse 编译器错误
2022-09-01 06:00:51
我偶然发现了一个我不明白的奇怪行为。
我必须将字符串转换为泛型,并且它会产生警告。
Type safety : Unchecked cast from String to T
如果我在方法声明上面添加,它工作正常。
@SuppressWarnings("unchecked")
如果我在赋值上方添加它,它会在 eclipse 中产生编译器错误。
这工作正常。
@SuppressWarnings("unchecked")
public <T> T search(final String query){
T returnValue = null;
...
if(returnValue instanceof String){
returnValue = (T) collection.getString(attrName);
}
这不能正常工作。
public <T> T search(final String query){
T returnValue = null;
...
if(returnValue instanceof String){
@SuppressWarnings("unchecked") // Compiler error: "returnValue cannot be resolved to a type"
returnValue = (T) collection.getString(attrName);
}
任何想法是什么导致了两种抑制警告的方法之间的差异?