在Combinator类中:
public static <KEY, T> void getCombsIntoTreeMap(int N, int K,
TreeMap<KEY, T> map,
Class<? extends KEY> keyIstance,
Class<? extends T> valueIstance)
{...}
和Comp类;
TreeMap<Hand, int[]> mappa = new TreeMap<Hand, int[]>();
int[] keyIstance = new int[2];
Hand valueIstance = new Hand( new int[]{0} );
Combinator.getCombsIntoTreeMap(53, 5, mappa,
keyIstance.getClass(),
valueIstance.getClass() );
编译器只是说:
Comp.java:85: <KEY,T>getCombsIntoTreeMap(int,int,java.util.TreeMap<KEY,T>,java.lang.Class<? extends KEY>,java.lang.Class<? extends T>) in Combinator cannot be applied to (int,int,java.util.TreeMap<Hand,int[]>,java.lang.Class<capture#86 of ? extends int[]>,java.lang.Class<capture#138 of ? extends Hand>)
Combinator.getCombsIntoTreeMap(53, 5, mappa, keyIstance.getClass(), valueIstance.getClass() );
^
我需要帮助 感谢
答案 0 :(得分:4)
你的Map
实例有类型参数列表<KEY, T>
,你的函数首先需要“KEY”类,第二个需要“T”类,但是你要将类传递给函数错误的顺序。
换句话说,您的地图声明为“KEY”为“Hand”且值为“int []”,但您的“keyIstance”(顺便说一下应该是“Instance”)的类型为{{1这似乎是倒退。