una privada otra objeto metodos internas genericos dentro crear clases clase anonima java guava inner-classes anonymous-class

privada - Clase interna anónima vacía en java



crear un objeto de una clase dentro de otra clase (2)

El propósito de esto es permitir que TypeToken encuentre la superclase de la instancia, lo que preservará la información del argumento de tipo.

Por ejemplo, aunque un objeto ArrayList<String> no sabe que su tipo de elemento es String , debido al borrado, la información de la superclase no se pierde, por lo que la new ArrayList<String>{} sabe que su superclase es ArrayList<String> , no solo ArrayList . TypeToken usa esa técnica para representar un tipo genérico construido.

Estaba buscando en la biblioteca de Guayaba y me encontré con una clase interna anónima vacía en TypeToken .

TypeToken<List<String>> stringListTok = new TypeToken<List<String>>() {};

¿Cuál es exactamente el uso de una clase interna anónima vacía y cuáles son los escenarios útiles donde puede ser útil?


Hay un uso, que la guayaba podría usar. Como saben, los tipos se pierden después de la compilación, pero si el tipo se especifica en el nivel de clase, no se pierde después de la compilación y se puede extraer por reflexión. Pondré el código para extraer el tipo en un minuto.

Editar No sé si el código es de alguna utilidad, pero aquí está

public class Reflect { public static void main(String[] args) { Super<String> aStringSuper = new Super<String>() {}; aStringSuper.method(); Super<List<Integer>> aListSuper = new Super<List<Integer>>() {}; aListSuper.method(); } } class Super<T> { public void method() { Type genericSuperclass = this.getClass().getGenericSuperclass(); ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass; for(Type type : parameterizedType.getActualTypeArguments()) { System.out.println(type); } } }