我一直無法理解確切的註釋必須或可以放置。Java註釋:在變量初始化時,但沒有賦值?
這種方法的類編譯,但會發出警告「未登記」:
<B extends BitSet> void doStuff(LinkedList<B> list) {
B board = list.getFirst();
B cloneBoard;
cloneBoard = (B) board.clone(); //unchecked
}
這編譯沒有警告:
<B extends BitSet> void doStuff(LinkedList<B> list) {
B board = list.getFirst();
@SuppressWarnings("unchecked")
B cloneBoard = (B) board.clone();
}
這並不編譯,但痕跡cloneBoard一個錯誤:
<B extends BitSet> void doStuff(LinkedList<B> list) {
B board = list.getFirst();
B cloneBoard;
@SuppressWarnings("unchecked")
cloneBoard = (B) board.clone(); // cloneBoard cannot be resolved to a type;
// VariableDeclaratorID expected
}
在關於註釋的Sun教程中,我無法找到答案至於爲什麼這是:http://docs.oracle.com/javase/tutorial/java/javaOO/annotations.html。
語法定義也幫不了我,因爲我不是很確定我理解正確的話:http://java.sun.com/docs/books/jls/third_edition/html/syntax.html#18.1
在我看來,這有什麼問題就在這裏是註釋可專門用於變量,但只有當他們宣佈時;以後的任務不會被註解所覆蓋。它是否正確?有沒有比整個方法抑制未經檢查的警告更優雅的解決方案?
哇,你的回答比我預想的要快得多,謝謝!他們都很有幫助;我接受了ruakh的一個優雅(尤其是代碼部分)的有用部分的答案。 –