Java 抽象类错误
我正在使用Cloudsim。我想为我自己的工作更改PowerVmAllocationPolicyAbstract类的findHostForVm()方法。我将findHostForVm()更改为抽象方法,如下所示Java 抽象类错误,java,jvm,cloud,virtualization,Java,Jvm,Cloud,Virtualization,我正在使用Cloudsim。我想为我自己的工作更改PowerVmAllocationPolicyAbstract类的findHostForVm()方法。我将findHostForVm()更改为抽象方法,如下所示 public abstract class PowerVmAllocationPolicyAbstract extends VmAllocationPolicy { public PowerVmAllocationPolicyAbstract(List<? extends
public abstract class PowerVmAllocationPolicyAbstract extends VmAllocationPolicy {
public PowerVmAllocationPolicyAbstract(List<? extends Host> list) {
super(list);
}
public abstract PowerHost findHostForVm(Vm vm) ;
.
.
}
public class D{
public PowerHost findHostForVm(List<Vm> vmlist) {
.
.
}
powerDatacenter = new PowerDatacenter(
name,
characteristics,
new D(),
new LinkedList<Storage>(),
5.0);
}
公共抽象类PowerVmAllocationPolicyAbstract扩展了VmAllocationPolicy{
公共PowerVmAllocationPolicyAbstract(列表您是否打算您的D
类实际扩展powervmallocationpolicyastract
?要做到这一点,它将是D扩展powervmallocationpolicyastract
。当我扩展powervmallocationpolicyastract
的D
类时,它有一个错误,即D
类不是抽象的,并且dosent覆盖了一个bstract方法,当从PowerVmAllocationPolicySimple
扩展时,该类也从PowerVmAllocationPolicyAbstract
扩展,但仍有错误,请帮助我该怎么办?谢谢lot@user2177820-您应该实现抽象方法(如错误所述)。我想你的问题来自于试图用一个列表
(这是重载,而不是重写)重写一个使用单个Vm
的方法。保护自己免受此类错误影响的一种方法是使用@override注释。
constructor PowerDatacenter in class org.cloudbus.cloudsim.power.PowerDatacenter cannot be applied to given types;
required: java.lang.String,org.cloudbus.cloudsim.DatacenterCharacteristics,org.cloudbus.cloudsim.VmAl locationPolicy,java.util.List<org.cloudbus.cloudsim.Storage>,double
found: java.lang.String,org.cloudbus.cloudsim.DatacenterCharacteristics,cs.umu.se.vmp.alg. D,java.util.LinkedList<org.cloudbus.cloudsim.Storage>,double
reason: actual argument cs.umu.se.vmp.alg. D cannot be converted to org.cloudbus.cloudsim.VmAllocationPolicy by method invocation conversion