我在的IntelliJ寫這個類。冗餘類型參數
public class Main {
public static void main(String[] args) {
Main.<Number>foo(0);
Main.<Integer>foo(0);
}
static <T> void foo(T t) {}
}
線Main.<Number>foo(0);
不會產生任何消息,但對下一行我得到的消息
明確的類型參數可以推斷。 該檢驗報告所有的呼叫,參數化,其中 明確的參數類型可以省略的方法,因爲他們將 由編譯器清楚地確定。
這沒有任何意義,我在所有。我的理解是所有類型的參數都被擦除了,所以類型參數是否含糊不清。至於我可以告訴用於調用返回類型爲void泛型方法時提供過一個類型參數的唯一原因是說服一個類型T
所需的範圍內存在的編譯器。除此之外,它應該沒有什麼區別你實際提供的類型參數。所以如果在第二種情況下類型參數是多餘的,那麼在第一種情況下它應該是多餘的。任何人都可以解釋這些消息何時出現的規則是如何工作的,以及爲什麼在這種情況下規則甚至應該取決於提供的類型參數?
我不明白在Eclipse的警告要麼。 – Andreas