获取列表的泛型类型可以通过Java的反射机制来实现。在Java中,泛型类型在运行时会被擦除,因此无法直接获取列表的泛型类型。但是可以通过以下方法来解决这个问题:
public class MyList<T> extends ArrayList<T> {
// ...
}
MyList<String> myList = new MyList<>();
Type genericType = myList.getClass().getGenericSuperclass();
if (genericType instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) genericType;
Type[] typeArguments = parameterizedType.getActualTypeArguments();
if (typeArguments.length > 0) {
Type typeArgument = typeArguments[0];
System.out.println("泛型类型: " + typeArgument.getTypeName());
}
}
public void processList(List<String> list) {
Type genericType = getClass().getMethod("processList", List.class).getGenericParameterTypes()[0];
if (genericType instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) genericType;
Type[] typeArguments = parameterizedType.getActualTypeArguments();
if (typeArguments.length > 0) {
Type typeArgument = typeArguments[0];
System.out.println("泛型类型: " + typeArgument.getTypeName());
}
}
}
如果以上方法都无法解决你提供的任务,可能需要重新考虑你的设计或者使用其他的解决方案。
腾讯云GAME-TECH沙龙
云+社区技术沙龙[第10期]
云+社区技术沙龙[第5期]
云+社区技术沙龙[第6期]
云+社区技术沙龙[第21期]
腾讯云GAME-TECH游戏开发者技术沙龙
DB-TALK 技术分享会
腾讯云GAME-TECH游戏开发者技术沙龙
Techo Day
腾讯云GAME-TECH沙龙
领取专属 10元无门槛券
手把手带您无忧上云