26
我偶然發現了一個我不明白的奇怪行爲。在泛型中添加@SuppressWarnings(「unchecked」)到單行生成eclipse編譯器錯誤
我必須投入一個字符串到一個泛型,它會產生一個警告。
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);
}
任何想法是什麼導致兩種方法之間的差異壓制警告?
來到這裏,因爲我不明白錯誤_「對令牌'結果的語法錯誤',在Eclipse中使用此令牌'_'後期望的VariableDeclaratorId。你的解釋是什麼編譯器嘗試以及爲什麼失敗很好!只需添加此評論,以防其他人搜索此語法錯誤。 – user1438038