Java 继承和泛型的构造函数问题
我很难理解带有继承的泛型。我得到的错误是:Java 继承和泛型的构造函数问题,java,generics,inheritance,Java,Generics,Inheritance,我很难理解带有继承的泛型。我得到的错误是: Stage.java:66: error: constructor Stage in class Stage<T> cannot be applied to given types; { ^ required: ArrayList<T>,double,ArrayList<T> found: no arguments reason: actual and formal arg
Stage.java:66: error: constructor Stage in class Stage<T> cannot be applied to given types;
{
^
required: ArrayList<T>,double,ArrayList<T>
found: no arguments
reason: actual and formal argument lists differ in length
where T is a type-variable:
T extends Object declared in class Stage
Stage.java:66:错误:类阶段中的构造函数阶段不能应用于给定类型;
{
^
必需:ArrayList、double、ArrayList
找到:没有参数
原因:实际参数列表和正式参数列表长度不同
其中T是一个类型变量:
T扩展类阶段中声明的对象
我拥有的是一个名为Stage0的子类(Stage的内联类),它继承自Stage。Stage0基本上具有相同的功能条-Stage0将@Override其父类中的一个方法。
这是Stage类的第63行(Stage0的开始)
class Stage0扩展了Stage
{
阶段0(ArrayList inQ,双输入时间,ArrayList outQ)
{
inputQueue=inQ;
takesTime=输入时间;
outputQueue=outQ;
}
@凌驾
公共布尔IsStarting(双倍时间)
{
返回false;
}
}
我的错误的来源是什么
干杯
public class Stage<T> // equivalent to a 'storage'
{
private T holdItem;
private boolean blocked;
private double takesTime, timeTaken, blockedTime, starveTime;
private ArrayList<T> inputQueue, outputQueue;
public Stage(ArrayList<T> inQ, double inputTime, ArrayList<T> outQ)
{
inputQueue = inQ;
takesTime = inputTime;
outputQueue = outQ;
}
公共类阶段//相当于“存储”
{
私人物品;
私有布尔阻塞;
私人双重占用时间、占用时间、阻塞时间、饥饿时间;
私有ArrayList inputQueue、outputQueue;
公共阶段(ArrayList inQ、双输入时间、ArrayList outQ)
{
inputQueue=inQ;
takesTime=输入时间;
outputQueue=outQ;
}
因为您没有在Stage0
构造函数代码中指定对super
的调用,编译器会为您插入它,就像您键入了以下内容一样:
Stage0(ArrayList<T> inQ, double inputTime, ArrayList<T> outQ)
{
super(); // <======================
inputQueue = inQ;
takesTime = inputTime;
outputQueue = outQ;
}
由于您尚未在
Stage0
构造函数代码中指定对super
的调用,编译器将为您插入该调用,就像您键入以下内容一样:
Stage0(ArrayList<T> inQ, double inputTime, ArrayList<T> outQ)
{
super(); // <======================
inputQueue = inQ;
takesTime = inputTime;
outputQueue = outQ;
}
请给出阶段类代码。@jelleB阶段类代码已添加。T.J.已解决问题。我将标记已解决的问题。干杯:)请给出阶段类代码。@jelleB阶段类代码已添加。T.J.已解决问题。我将标记已解决问题。干杯:)这已解决问题!我将标记为已解决问题时间一到,我就把它标记为已解决-谢谢!
Stage0(ArrayList<T> inQ, double inputTime, ArrayList<T> outQ)
{
super(inQ, inputTime, outQ); // <======================
inputQueue = inQ;
takesTime = inputTime;
outputQueue = outQ;
}