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辆));
收集.分类(汽车);
看看我关于分类的帖子