Metodi statici e parametri di tipo nella specifica della lingua Java
-
21-12-2019 - |
Domanda
Ho letto nella JLS 7 la seguente frase.
.È un errore di compilazione per utilizzare il nome di un parametro di tipo di qualsiasi circostante Dichiarazione in intestazione o corpo di un metodo di classe.
Si prega di spiegare il suo significato.
Soluzione
significa che non puoi fare
class Test<T> {
static void f(T a) {
}
}
.
Devi fare
class Test<T> {
static <T> void f(T a) {
}
}
.
I tipi generici di un metodo statico sono indipendenti dai tipi generici della classe o altri metodi.
Quindi puoi anche fare qualcosa come
class Test {
static <A, B, C> void f(A a, B b, C c) {
}
}
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow