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.

È stato utile?

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
scroll top