fundición sin control de tipo genérico al mismo tipo

Nickkk:

El siguiente código genera una advertencia Unchecked cast: 'T' to 'U'en IntelliJ IDEA:

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

Esto no tiene sentido para mí, puesto Ty Use definen como el mismo tipo. ¿Cuál es el problema?

Eran :

Ty Uno se definen como del mismo tipo. Ambos se definen como extends A, cuyos medios Ty Upueden ser clases no relacionadas que implementan la Ainterfaz. De ahí que el reparto no es seguro.

El reparto sólo es seguro que puede hacer es para echar las referencias de tipo To Upara escribir A. Por supuesto que no es necesario un reparto tan. Simplemente les puede asignar a una variable de tipo A.

Supongo que te gusta

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