[英]generic as a generic type in Java?
我有这个方法
static public <K> float calculateSimilarity(HashMap<K, Float> hashMap1, Class<K> clazz)
在我称之为方法的部分中,它是这样的:
HashMap<Pair<Long,Long>,Float> newValues1=....; //A.K.A. K is Pair<Long,Long> type.
calculateSimilarity(newValue1, Pair.class); // Doesn't work here!
哪对是
org.apache.commons.lang3.tuple.Pair
一对由两个元素组成。
你能告诉我在调用calculateSimilarity方法时应该如何使用Pair.class? 因为如果我使用String作为K它工作但是在这里它不起作用我得到了编译错误。
对于HashMap<Pair<Long, Long>>
,类型参数K
被推断为Pair<Long, Long>
。 所以你需要传递Class<Pair<Long, Long>>
但你传递的是Class<Pair>
。 你需要使用适当的演员:
calculateSimilarity(newValue1, (Class<Pair<Long, Long>>)(Class<?>)Pair.class);
强制转换是必需的,因为您无法使用.class
文字直接获取所需的Class
类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.