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.}第5行有错,我认为是因为Collections是个接口,不能直接使用,但题目说是第五行编译是报错,但编译是报错和运行是报错有和区别?如何判断代码段中的编译是报错和运行是报错?谢谢

解决方案 »

  1.   

    Collection是接口。
    Collections是类。sort是静态方法,你这么写是对的。
      

  2.   

    public class Collections extends Object{}
      

  3.   

    哦,明白了,如果你的ObjectOne没有实现Comparable接口,就会报错的。
      

  4.   

    编译是 javac ...
    运行是 java ...
    这点区别么?
      

  5.   


      编译 出错 说明你的程序 肯定 不合乎 java语法规则   还有一个 是 异常 ,跟这个不是一个东西  一种是非运行异常<必须捕捉或抛出>,一种是运行时异常<可以不处理>
      

  6.   

    异常分为2类,运行时异常和非运行异常,前者不可jvm不可预见,可能发生,后者lvm能预见,必然发生
    比如
    int x=1;
    int y;该值再运行的时候从外部获得
    double z = x/y;
    此时编译能通过,但是运行的时候如果输入y=0,则出错,这种错误就是运行时异常
    但是程序员是可以预见的,所以可以提前捕获处理