我在名为Computation的类中有一个方法getDiff(),它计算两个值之间的差异并返回结果的绝对值,如下所示:
public int getDiff() {
Computation amg = new Computation();
setTemp = 55;
dT = (actualMouldTemp - setTemp);
AMT = (int) Math.abs(dT);
System.out.println("The temperature difference is : "+ AMT);
return AMT;
}
我希望返回的值AMT
存储在Array
中,然后用于进一步计算加热时间,如下所示:
public double getHeatingTime1() {
Controller jose = new Controller();
int[] Results = new int[4];
//Results [] = new int[4];
//Results [] = Computation.class;
Q = 3; //heating in kW
Cp = 4.2; //Specific heat capacity of water
volume = 6;
//AMT =
System.out.println("AMT IS " + Results[1]);
long HT1 = (long) ((volume * Cp * Results[1]) / Q);
return HT1;
}
问题是我创建了一个存储这些结果的数组,但是我没有在方法Results[1]
中看到getHeatingTime1()
的值,因为它给我的加热时间为零印刷线。我最好如何在代码中代表Array
这样的代码?谢谢
我使用类Computation作为处理我的JADE代理的所有计算的类。所以会发生的是,getDiff()中用于actualMouldTemp的值是方法getAnswer()返回的值,如下所示:
public double getAnswer() {
TemperatureControlAgent ta = new TemperatureControlAgent();
TemperatureControlAgent.CoolingOrdersServer lp = ta.new CoolingOrdersServer();
int rand1[] = new int[3];
RandomVariableGenerator var = new RandomVariableGenerator();
rand1 = RandomVariableGenerator.getRand();
meltTemp = 245;
setTemp = 55;
System.out.println("Melt Temp is : "+ meltTemp);
//System.out.println("Melt Temp is : "+ MA);
actualMouldTemp = (int) ((0 - 51.4)+(0.302 * meltTemp) +(1.64 * rand1[0])+ (0.201 * rand1[1]));
System.out.println("The actual mould temperature is :" +actualMouldTemp + " Degrees celcius" );
//getDiff(actualMouldTemp);
return actualMouldTemp;
}
返回值actualMouldTemp由Temperature control Agent使用。相同的返回值用于计算温度控制剂也调用的差值。问题是当从另一个代理程序(操作代理程序)调用值时,值AMT为零。因此需要将它们存储在一个数组中并从那里访问它们。这是解决这个问题的最佳方法吗?还有什么其他选择不涉及创建数组?
答案 0 :(得分:1)
要存储在数组中,您需要提供存储值的数组索引
Results[0] = getDiff();
System.out.println("AMT IS "+ Results[0]);
另外,
通过做结果[1]你浪费了一个空间......所以从0开始
答案 1 :(得分:1)
如果您像这样重写diff()函数,很难理解为什么首先需要数组:
public int getDiff(int targetTemp, int currentTemp) {
int diff = (int) Math.abs(targetTemp - currentTemp);
System.out.println("The temperature difference is : "+ diff);
return diff;
}
然后在你的计算中使用它 - 你应该在路上。