Tengo una clase simple Apple se extiende desde otra clase simple Fruta.¿Cómo averiguar el tipo declarado de un identificador en Java?
En tiempo de ejecución, que podría utilizar
Fruit fruit = new Apple();
fruit.getClass();
para obtener el tipo real del objeto de la fruta, que es Apple.class.
También podría usar fruit instanceof Apple
y fruit instanceof Fruit
para verificar si este objeto de fruta es una instancia de manzana o fruta. Ambas expresiones devuelven verdadero, lo cual es normal.
¿Pero hay una manera de determinar con precisión el tipo declarado de identificador fruit
? Que en este caso es Fruit
.
Debe describir qué efecto desea alcanzar después de tener esa diferenciación. Creo que hay otras formas de resolver ese problema original. – Bananeweizen
Tengo curiosidad sobre por qué quieres saber (cómo se declaró 'fruit'), y por separado, por qué no * ya * sabes (porque tienes el código en frente de ti). No se me ocurre un caso de uso. El objeto que 'fruit' apunta a ** es ** y' Apple'. Su interfaz a través de la variable 'fruit' es' Fruit', pero eso es una cosa puramente de tiempo de compilación. –
¿Qué sentido tiene hacer esto? Has codificado la fruta para que sea Fruta, así que ya sabes que es lo que es. – DaveRlz