Guardando in questo, ho intenzione di prendere una congettura qui. Si consideri il seguente:
public class Foo {
public <E> Foo(E t) {
//do something
}
public static <E> void bar(E e) {
//do something
}
}
Nella classe di cui sopra si ottiene alcun avviso quando si crea un'istanza Foo
come segue:
Foo f = new Foo("String");
Questo funziona perché il tipo di E
viene dedotta qui. Proprio come ti aspetti che accada nel caso del metodo. Tuttavia, l'errore che si ottiene non è perché il tipo di argomento non viene dedotto, ma perché il tipo non elaborato per la classe non può essere dedotto.
Penso che ciò che ne consegue è che il tipo raw Class può essere propagato ai metodi, ma i metodi non possono impostare il tipo raw di classe usando inferenza.
Qual è l'errore preciso che stai vedendo? – linuxuser27
@ linuxuser27 Viene visualizzato un avviso di tipo non elaborato su 'new Foo (" String ");' – Jeffrey