安卓中如何获取数组和Collection成员的Class类型
时间: 2024-02-27 21:53:17 浏览: 51
要获取数组和Collection成员的Class类型,可以使用Java反射机制中的getComponentType()和getGenericComponentType()方法。
对于数组类型,可以使用以下方法获取其成员类型的Class对象:
```java
Class<?> componentType = array.getClass().getComponentType();
```
对于Collection类型,可以使用以下方法获取其成员类型的Class对象:
```java
Type genericType = collection.getClass().getGenericSuperclass();
if (genericType instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) genericType;
Type[] typeArguments = parameterizedType.getActualTypeArguments();
if (typeArguments.length > 0 && typeArguments[0] instanceof Class) {
Class<?> componentType = (Class<?>) typeArguments[0];
}
}
```
其中,使用ParameterizedType获取泛型参数类型,如果存在多个泛型参数,则需要根据实际情况进行调整。
阅读全文