安卓中如何获取Map的key和value的Class类型
时间: 2024-02-26 16:59:18 浏览: 19
可以使用Java反射中的`ParameterizedType`来获取Map的key和value的Class类型。以下是一个示例代码:
```java
Map<String, Integer> map = new HashMap<>();
Type[] types = map.getClass().getTypeParameters();
for (Type type : types) {
if (type instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) type;
Type[] actualTypes = parameterizedType.getActualTypeArguments();
Class<?> keyClass = (Class<?>) actualTypes[0];
Class<?> valueClass = (Class<?>) actualTypes[1];
System.out.println("keyClass=" + keyClass.getName() + ", valueClass=" + valueClass.getName());
}
}
```
在上述代码中,我们首先获取Map的类型参数数组,然后遍历数组中的每一个类型参数。如果类型参数是`ParameterizedType`类型,那么我们就可以通过它获取到Map的key和value的类型参数。最后,我们将类型参数转换为`Class`对象,并输出其名称。注意,Map的key类型参数在数组中的下标为0,value类型参数在下标为1。