我在第一个类 A 中声明了变量 public static 所以,我可以从类 B 访问它 但是,变量只能在 A 类的主要方法中计算,并且它是可计算的,我在同一个类中得到值,但在 B 类中我得到一个零:
public class A {
public static double CloudMakespan;
public static double CalculCloudMakespan(){
double cloudms = 0;
int A= SimulationSetup.getCloudlet().length-1;
double executionEndTimeLastCloudlet = SimulationSetup.getCloudlet([A].getFinishTime();
double executionStartTimeFisrtCloudlet=SimulationSetup.getCloudlet()[0].getExecStartTime();
cloudms= executionEndTimeLastCloudlet - executionStartTimeFisrtCloudlet;
return cloudms; }
`public static void main(String[] args){
Cloudsim.startSimulation();
Cloudsim.EndSimulation();
CloudMakespan=CalculCloudMakespan();
}
i tried to do this in Class B
Class B{
private double totalMakespan;
private tasksMakespan;
public double doSomeCalCul(){
totalMakespan=ClassA.CloudMakespan+taskMakespan;
}
}
问题是在计算变量 Cloudmakespan 之前调用了方法 DoSomeCalcul()
之后我不能调用它,因为开始模拟是指定指令的结果,其中之一是计算 Cloud Makespan
your text
也许您可以在“DoSomeCalcul”中循环多次,直到变量 Cloudmakespan 准备就绪。当然,这种方式效率很低。最好在 Cloudmakespan 准备好后回调“DoSomeCalcul”。