在Apache Commons BeanUtil中,如何获取列表中的类型?例如
class Track {
List<Actor> actorList = new ArrayList<Actor>();
}
System.err.println(PropertyUtils.getPropertyType(trackBean, "actorList"));
// it should give me Actor instead of java.util.List谢谢。
发布于 2011-04-11 02:02:28
我不知道是否可以使用beanutils。但您可以使用反射来完成此操作。
Field field = Track.class.getDeclaredField("actorList");
ParameterizedType pt = (ParameterizedType) field.getGenericType();
Class clazz = (Class) pt.getActualTypeArguments()[0];你可能需要上面的一些检查(你是否可以强制转换,是否存在实际的类型参数,等等),但是你已经明白了。
类型信息在运行时被擦除,除非它是结构化的--例如字段或类的类型参数。
https://stackoverflow.com/questions/5613574
复制相似问题