A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王梁星 中级黑马   /  2012-10-18 12:27  /  1263 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王梁星 于 2012-10-18 19:18 编辑
  1. //CollectionTreeSetComparator.java

  2. import java.util.*;
  3. class CollectionTreeSetComparator{
  4.   public static void main(String[] args){
  5.     TreeSet ts=new TreeSet(new StrLenCompare());
  6.     ts.add("abc");
  7.     ts.add("abc");
  8.     ts.add("def");
  9.     ts.add("hijiiii");
  10.     ts.add("klmiiiiii");
  11.     ts.add("nqviiiiiiii");
  12.     Iterator it=ts.iterator();
  13.     while(it.hasNext())
  14.       sop(it.next());
  15.   }
  16.   public static void sop(Object obj){
  17.     System.out.println(obj);
  18.   }

  19. }
  20. class StrLenCompare implements Comparator{
  21.   public int compare(Object o1,Object o2){
  22.     String s1=(String)o1;
  23.     String s2=(String)o2;
  24.     int num=new Integer(s1.length()).compareTo(new Integer(s2.length()));
  25.    if(num==0)
  26.       return s1.compareTo(s2);
  27.     return num;
  28.   }
  29. }

  30. 报错:
  31.   CollectionTreeSetComparator.java:31: 错误: 无法将类 Integer中的构造器 Integer应用到给定类型;
  32.     int num=new Integer(s1.length()).compareTo(new Integer(s2.length()));
  33.                                                ^
  34.   需要: 没有参数
  35.   找到: int
  36.   原因: 实际参数列表和形式参数列表长度不同
  37. CollectionTreeSetComparator.java:31: 错误: 无法将类 Integer中的构造器 Integer应用到给定类型;
  38.     int num=new Integer(s1.length()).compareTo(new Integer(s2.length()));
  39.             ^
  40.   需要: 没有参数
  41.   找到: int
  42.   原因: 实际参数列表和形式参数列表长度不同

  43. 不是我不想自己排错,或许是心太急了,以使察觉不出哪的错
复制代码
我想

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

5 个回复

倒序浏览


我可以运行啊,而且你的程序也没有错误信息里的31行。

我编译的时候仅仅出现泛型警告:
---------- Java编译 ----------
注: CollectionTreeSetComparator.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。


评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
刘伟平 发表于 2012-10-18 12:31
我可以运行啊,而且你的程序也没有错误信息里的31行。

我编译的时候仅仅出现泛型警告:

我知道原因了,而且这原因不止一次遇到,恐怕windows于遇不到这种情况,还是我的配置不到位。我的系统是linux`Fdora17,这个问题在我加了import java.lang.Integer;就编译通过了,另外加import java.lang.*;还依然编译失败
回复 使用道具 举报
呵呵,挺神奇的
回复 使用道具 举报
刘伟平 发表于 2012-10-18 15:31
呵呵,挺神奇的

是吗?倒为难住我了,可能对java环境配置还不了解
回复 使用道具 举报
王梁星 发表于 2012-10-18 19:08
是吗?倒为难住我了,可能对java环境配置还不了解

那就应该先研究明白在Linux里面怎么配置JAVA,磨刀不误砍柴工
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马