gpt4 book ai didi

java - 如何确定Container模板类

转载 作者:太空宇宙 更新时间:2023-11-04 11:26:26 25 4
gpt4 key购买 nike

在Java 1.8中工作,我需要确定HashMap中K和V的类。我的第一次尝试没有成功,我承认我不知道接下来该去哪里。我希望能养活这个

public static int foo(Object obj){
int result = 0;
String x = obj.getClass().getSimpleName();

switch(x){
case "HashMap":
Type sooper = obj.getClass().getGenericSuperclass();
Type key = ((ParameterizedType)sooper).getActualTypeArguments()[ 0 ];
Type value = ((ParameterizedType)sooper).getActualTypeArguments()[ 1 ];
System.out.println(sooper.getTypeName());
System.out.println(key.getTypeName());
System.out.println(value.getTypeName());

break;
}
}

public static void main(String[] args) {
foo(new HashMap<Integer,Character>());
}

输出:

Class ::    HashMap
java.util.AbstractMap<K, V>
K
V

最佳答案

通常,由于类型删除,您将无法检索 K 和 V 的类型。创建模板对象后,系统不会将其视为 <unique_type K, unique_type V>反而 <Object K, Object V>

我做了一些查找,发现 another question这里的 SO 提供了一个丑陋但有效的解决方案。

关于java - 如何确定Container模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44307088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com