先运行Array2后,就可以成功编译,怎么回事呢
单独写Array3这样一个类,就会提示错误,但是如果先写Array2这个类就会成功编译,怎么会这样呢?
import java.util.*;
public class Array3{
public static void main(String[] args){
sagak[] a=new sagak[]{new sagak(1,2),new sagak(2,2),new sagak(3,3),new sagak(2,5)};
Arrays.sort(a);
for(int i=0;i <a.length;i++)
System.out.println(a[i].getArea());
}
}
xxxxxxxxxxxxxxxxxxxxxxxxxxx
class sagak implements Comparable{
int width;
int height;
sagak(int width,int height){
this.width=width;
this.height=height;
}
int getArea(){
return width*height;
}
public int compareTo(Object o){
sagak s=(sagak)o;
return getArea()-s.getArea();
}
}
public class Array2{
public static void main(String[] args){
sagak a=new sagak(1,2);
sagak b=new sagak(2,4);
System.out.println(a.compareTo(b));
}}
------解决方案--------------------你自己看看文件夹下都有什么.class文件就明白了.
Array2.java编译成2个.class文件
Array2.class
sagak.class
------解决方案--------------------根据我经验,因为你的java程序没有package。
不管这个是否是你error的原因,都请记得永远加上package。这个能减少很多麻烦