Java 如何获取具有反射的哈希集元素?
我正在尝试获取数组元素的类型。我得到了这样的东西:Java 如何获取具有反射的哈希集元素?,java,reflection,hashset,Java,Reflection,Hashset,我正在尝试获取数组元素的类型。我得到了这样的东西: Set<Foo> mySet = new HashSet<Foo>(); Array.get() 谢谢 您的问题很不清楚,但在本代码中 new HashSet<Foo>(); newhashset(); 您没有机会通过反射获得Foo部分。时期相关搜索词为“类型擦除”。获取Foo的方法为: ParameterizedType listType = (ParameterizedType) field.get
Set<Foo> mySet = new HashSet<Foo>();
Array.get()
谢谢 您的问题很不清楚,但在本代码中
new HashSet<Foo>();
newhashset();
您没有机会通过反射获得Foo
部分。时期相关搜索词为“类型擦除”。获取Foo的方法为:
ParameterizedType listType = (ParameterizedType) field.getGenericType();
Class<?> stringListClass = (Class<?>) listType.getActualTypeArguments()[0];
ParameteredType listType=(ParameteredType)字段。getGenericType();
类stringListClass=(类)listType.getActualTypeArguments()[0];
但是您必须确保字段
是一个数组/集合/哈希集,否则将是一个例外。忽略行isComplex=isComplex(field,arrayElement)
只是一个布尔值。
ParameterizedType listType = (ParameterizedType) field.getGenericType();
Class<?> stringListClass = (Class<?>) listType.getActualTypeArguments()[0];