【发布时间】:2011-11-15 07:25:28
【问题描述】:
我偶然发现了一种我不理解的奇怪行为。
我必须将字符串转换为泛型,它会产生警告。
Type safety : Unchecked cast from String to T
如果我在方法声明上方添加
@SuppressWarnings("unchecked")它工作正常。如果我将它添加到赋值之上,它会在 日食。
这很好用。
@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);
}
知道是什么导致了两种抑制警告的方法之间的差异吗?
【问题讨论】:
标签: java eclipse generics compiler-errors suppress-warnings