Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IDE希望类是抽象的,具有可比性_Java_Comparable - Fatal编程技术网

Java IDE希望类是抽象的,具有可比性

Java IDE希望类是抽象的,具有可比性,java,comparable,Java,Comparable,我试图使用Comparable接口,通过使用自定义compareTo()方法,使用“到达时间”字段对Car对象的数组列表进行排序,但它一直告诉我,我做不到,因为Car对象不是抽象的。我不能把它抽象化。我需要实例化Car对象 有人知道为什么要我将类抽象化吗?似乎是IDE在实现Compariable接口时迫使您将类抽象化或定义Comparieto方法 似乎是IDE迫使您在实现Comparable接口时将类抽象或定义为compareTo方法 类中的方法定义不正确。一定是 @Override publi

我试图使用
Comparable
接口,通过使用自定义
compareTo()
方法,使用“到达时间”字段对
Car
对象的数组列表进行排序,但它一直告诉我,我做不到,因为
Car
对象不是抽象的。我不能把它抽象化。我需要实例化
Car
对象


有人知道为什么要我将类抽象化吗?

似乎是IDE在实现
Compariable
接口时迫使您将类抽象化或定义
Comparieto
方法

似乎是IDE迫使您在实现
Comparable
接口时将类抽象或定义为
compareTo
方法

类中的方法定义不正确。一定是

@Override
public int compareTo(Car o)
{
    return 0;
}

由于该方法没有正确重写接口中的方法,IDE要求您标记类抽象以避免编译错误。另一种选择是在类中正确实现抽象方法并消除错误。如果使用eclipse,请在类上按Ctrl+1并选择“添加未实现的方法”选项。

类中的方法定义不正确。一定是

@Override
public int compareTo(Car o)
{
    return 0;
}

由于该方法没有正确重写接口中的方法,IDE要求您标记类抽象以避免编译错误。另一种选择是在类中正确实现抽象方法并消除错误。如果使用eclipse,请在类上按Ctrl+1并选择“添加未实现的方法”选项。

您需要这样使用它:

public class Car implements Comparable<Car>{

    ...

    @Override
    public int compareTo(Car other) {
    ...
    }
}
公共级轿车{
...
@凌驾
公共内部比较(汽车其他){
...
}
}

您需要这样使用它:

public class Car implements Comparable<Car>{

    ...

    @Override
    public int compareTo(Car other) {
    ...
    }
}
公共级轿车{
...
@凌驾
公共内部比较(汽车其他){
...
}
}
下面是一个工作(如果相当粗糙)的示例:

公车
{
静态级轿车
{
到达时间;
公共汽车(日期时间)
{
到达时间=时间;
}
}
静态类CarComparator实现Comparator
{
@凌驾
公共整数比较(o1车、o2车)
{
返回o1.arrivalTime.compareTo(o2.arrivalTime);
}       
}
公共静态void main(字符串[]args)
{
List cars=new ArrayList();
//在这里创建并添加一些汽车
Collections.sort(cars,newcarcomparator());
}
}
下面是一个工作(如果相当粗糙)的示例:

公车
{
静态级轿车
{
到达时间;
公共汽车(日期时间)
{
到达时间=时间;
}
}
静态类CarComparator实现Comparator
{
@凌驾
公共整数比较(o1车、o2车)
{
返回o1.arrivalTime.compareTo(o2.arrivalTime);
}       
}
公共静态void main(字符串[]args)
{
List cars=new ArrayList();
//在这里创建并添加一些汽车
Collections.sort(cars,newcarcomparator());
}
}

您应该使用类似的界面:

public class Car implements Comparable<Car> {

    private int arrivalTime;

    public Car(int arrivalTime) {
        this.arrivalTime = arrivalTime;
    }

    public int getArrivalTime() {
        return this.arrivalTime;
    }

    @Override
    public int compareTo(Car car) {
        return this.arrivalTime - car.getArrivalTime();
    }

}
公共级轿车{
私人入境时间;
公共汽车(国际到达时间){
this.arrivalTime=到达时间;
}
public int getArrivalTime(){
返回此。到达时间;
}
@凌驾
公共内部比较(汽车){
返回此.arrivalTime-car.getArrivalTime();
}
}
要进行实际排序,请执行以下操作:

LinkedList<Car> cars = new LinkedList<Car>();
cars.add(new Car(20000));
cars.add(new Car(30000));
cars.add(new Car(40000));

Collections.sort(cars);
LinkedList cars=new LinkedList();
增加(新车(20000辆));
增加(新车(30000辆));
增加(新车(40000辆));
收集.分类(汽车);

请看我关于排序的帖子。

您应该使用类似的界面:

public class Car implements Comparable<Car> {

    private int arrivalTime;

    public Car(int arrivalTime) {
        this.arrivalTime = arrivalTime;
    }

    public int getArrivalTime() {
        return this.arrivalTime;
    }

    @Override
    public int compareTo(Car car) {
        return this.arrivalTime - car.getArrivalTime();
    }

}
公共级轿车{
私人入境时间;
公共汽车(国际到达时间){
this.arrivalTime=到达时间;
}
public int getArrivalTime(){
返回此。到达时间;
}
@凌驾
公共内部比较(汽车){
返回此.arrivalTime-car.getArrivalTime();
}
}
要进行实际排序,请执行以下操作:

LinkedList<Car> cars = new LinkedList<Car>();
cars.add(new Car(20000));
cars.add(new Car(30000));
cars.add(new Car(40000));

Collections.sort(cars);
LinkedList cars=new LinkedList();
增加(新车(20000辆));
增加(新车(30000辆));
增加(新车(40000辆));
收集.分类(汽车);
看看我关于分类的帖子