14、考虑如下代码段:1. ArrayList<ObjectOne> list = new ArrayList<ObjectOne>();2. list.Add(new ObjectOne());3. list.Add(new ObjectOne());4. list.Add(new ObjectOne());5. Collections.sort(list);6. class ObjectOne {7. private int x = 0;8. private int y = 0;9. }该代码段的输出为:()A) 编译时第5行报错B) 运行时第5行出错C) 编译时第3行出错D) 运行时第3行出错
3 回答
ABOUTYOU
TA贡献1812条经验 获得超5个赞
你好,答案是A,你放代码复制到Eclipse或者Netbeans里,保存时它就提示第五行有错
Eclipse里的错误提示是:
边界不匹配:类型 Collections 的通用方法 sort(List<T>)不适用于参数(ArrayList<ObjectOne>)。推断类型 ObjectOne 并不是有界参数 <T 到 Comparable<? super T>> 的有效替代项。
如果要修改成正确的话,把第一行ArrayList<ObjectOne> list = new ArrayList<ObjectOne>();改为ArrayList list = new ArrayList<ObjectOne>();即可
至尊宝的传说
TA贡献1789条经验 获得超10个赞
Collections中的sort()方法,接收一个泛型List<T>,但前提是T需要实现Comparable接口,也就是说你自己写的ObjectOne这个类需要implements Comparable,实现
public int compareTo(ObjectOne o)这个方法,一般法则就是相等返回0,大于返回1,小于返回-1!按你这个类的需求去实现。然后才可以sort()
- 3 回答
- 0 关注
- 247 浏览
添加回答
举报
0/150
提交
取消
