这是我的主要结构: 一些接口方法在类A中实现,其余的都在子类中实现。排序ArrayList对象的抽象类的子类的实例
public interface I
{
// some methods
//
}
public abstract class A implements I
{
// some variables and methods
//
}
public class B extends A
{
// some variables and methods
//
}
public class C extends A
{
// some variables and methods
//
}
public abstract class D extends A
{
// some variables and methods
//
}
public class E extends D
{
// some variables and methods
//
}
public class Test
{
public static void main(String[] args)
{
ArrayList<I> la = new ArrayList<I>();
la.add(new B(..));
la.add(new C(..));
la.add(new C(..));
la.add(new B(..));
la.add(new E(..));
}
}
有在乙构造,C和E类。
我需要用类A的变量对la
进行排序,变量是int数据类型。
我尝试改变
public abstract class A implements I, Comparable<A>
但我得到,因为缺少在所有非抽象类public int compareTo(A o)
方法的错误。
我需要做什么?
谢谢。
如果某些东西缺少那么如何添加缺少实体的想法。 –
你的类的对象排序是基于你的逻辑。 JVM不能为你自动定义它。你需要在某个地方定义它。如果你实现了Comparable接口,那么你需要在它的抽象方法'compareTo'的实现中定义比较逻辑,你必须提供方法的实现。添加它,实现比较的逻辑。可能要么你能解决问题,要么你会有更多*有意义的*和*特定*问题。 –
所以我需要实现 public int compareTo(A o) in class A? – Asaf