elenco desmarcada de tipo genérico para o mesmo tipo

Nickkk:

O código a seguir gera um aviso Unchecked cast: 'T' to 'U'no IntelliJ IDEA:

interface A {}
class B<T extends A, U extends A> {
    void f() {
        final T t = null;
        final U u = (U) t;
    }
}

Isso não faz sentido para mim, uma vez Te Usão definidos como o mesmo tipo. Qual é o problema?

Eles foram:

Te Unão são definidos como o mesmo tipo. Eles são ambos definidos como extends A, cujos meios Te Upodem ser classes não relacionados que implementam a Ainterface. Daí o elenco não é seguro.

O elenco só é seguro que você pode fazer é lançar as referências de tipo Tou Ua digitar A. Claro que você não precisa de um tal elenco. Você pode simplesmente atribuí-los a uma variável do tipo A.

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=477708&siteId=1
Recomendado
Clasificación