我有一个抽象类Chainable,它包含一个虚拟静态方法,如下所示:
public abstract class Chainable implements Comparable<Chainable>
{
public static ArrayList<Chainable> create_index(ArrayList<Chainable> chain)
{
return new ArrayList<Chainable>();
}
}
这个静态方法在其继承者中被重写,即在Note类中:
public class Note extends Chainable
{
public static ArrayList<Chainable> create_index(ArrayList<Chainable> chain)
{
return sort(quantize(chain));
}
}
现在,我有一个类Chain,它接受一个Chainable参数T并包含一个Chainables的ArrayList . 我想为链编写一个create_index方法,如下所示,它将调用Chainable T上定义的特定方法,该方法作为参数传入:
public class Chain<T extends Chainable>
{
private ArrayList<T> list;
public ArrayList<Chainable> create_index()
{
return T.create_index(list);
}
}
但是,我收到错误“Chainable中的create_index(java.util.ArrayList)无法应用于(java.util.ArrayList) . ”我不明白这一点,因为我已经指定T在Chain的类定义中是一个Chainable . 你能告诉我这里发生了什么吗?