我有一个名为countDirectSimilarity的方法,在这个方法中我想调用另一个方法,但是我发现很难调用它,您能帮我吗?
这里是源代码,我将调用方法名称countAggrIntStrength
private double countDirectSimilarity(double[][] matrixEgoNetwork, int index) {
double sim=0;
for (int i = 0; i < matrixEgoNetwork.length; i++) {
//here the trouble
if (matrixEgoNetwork[i][0]==this.countAggrIntStrength(*here the error*) && matrixEgoNetwork[i][index]!=0) {
sim++;
}
}
return sim;
}
这是我要调用的方法
public double countAggrIntStrength(Map<DTNHost, ArrayList<Double>> neighborsHist) {
double AggrIntStrength = 0;
double lambda = 0, sigma = 0;
for (Map.Entry<DTNHost, ArrayList<Double>> data : neighborsHist.entrySet()) {
lambda = data.getValue().get(0);
sigma = data.getValue().get(1);
AggrIntStrength = this.countAgrIntStrength(lambda, sigma);
}
return AggrIntStrength;
}
另一个问题是我要输入的数据结构 this.countAggrIntStrength() 在另一个班上,你能帮我吗?
答案 0 :(得分:0)
使用吸气剂从另一个类获取数据结构:
otherClassName.getMap()
然后将其传递给第一个类中的方法,可以在方法调用中进行
countAggrIntStrength(otherClassName.getMap());
或先保存:
Map<DTNHost, ArrayList<Double>> mapToPass = otherClassName.getMap();
countAggrIntStrength(mapToPass)
您需要在另一堂课中使用一种吸气剂:
public Map getMap(){
return variableThatStoresTheMap;
}
如果您还没有一个。
答案 1 :(得分:0)
一些数据结构类,用于保存近邻历史地图。
public class DataStructure {
Map<DTNHost, ArrayList<Double>> neighborsHist;
public Map<DTNHost, ArrayList<Double>> getNeighborsHist() {
return neighborsHist;
}
public void setNeighborsHist(Map<DTNHost, ArrayList<Double>> neighborsHist) {
this.neighborsHist = neighborsHist;
}
public void businessLogicFunc() {
//business logic function.
...
}
}
在countDirectSimilarity函数内部调用get方法。
public DataStructure dataStructure;
private double countDirectSimilarity(double[][] matrixEgoNetwork, int index) {
double sim=0;
for (int i = 0; i < matrixEgoNetwork.length; i++) {
if (matrixEgoNetwork[i][0]==this.countAggrIntStrength(dataStructure.getNeighborsHist()) &&
matrixEgoNetwork[i][index]!=0) {
sim++;
}
}
return sim;
}
答案 2 :(得分:0)
使用静态
public static double countAggrIntStrength...
在您的方法中不需要this.countDirectSimilarity,您可以直接调用countDirectSimilarity方法。