黑马程序员技术交流社区
标题:
程序报错,求解
[打印本页]
作者:
散人online
时间:
2013-1-27 04:17
标题:
程序报错,求解
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>(
new Comparator<Map.Entry<Character,Integer>>(){
public int compare(Map.Entry<Character,Integer> me1, Map.Entry<Character,Integer> me2){
int mun = me1.getValue().compareTo(me2.getValue());
if(mun==0)
return me1.getKey().compareTo(me2.getKey());
return mun;
}
});
new TreeMap然后以匿名内部类的形式传了一个比较器进去,编译报错:
找不到符号
符号: 构造函数 TreeMap(<匿名 java.util.Comparator<java.util.Map.Entry<java.lang.Character,java.lang.Integer>>>)
位置: 类 java.util.TreeMap<java.lang.Character,java.lang.Integer>
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>(
^
作者:
黑马张英涛
时间:
2013-1-27 09:43
不知道你有没有仔细的看下API文档,
TreeMap<K,V>
TreeMap
(
Comparator
<? super
K
>
comparator)
比较器中参与比较的类型只能是K或者K的父类,你这个例子中
显然Map.Entry<Character,Integer>不是Character的父类,所以编译报错了。
作者:
王少雷
时间:
2013-1-27 11:03
传的时候看清参数,不要写得这么复杂分开写看得更清。
作者:
张敬培
时间:
2013-1-27 21:36
Comparable<T>,Compatator的泛型只能是一种类型,不能是两种。
在new Comparator<Map.Entry<Character, Integer>>();中你存放的是两种类型,所以会报类型转换异常
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2