我想从另一个类调用数据结构,但是我在这里发现了一个问题, 你能帮我吗?
此处是源代码
SimBetWithFairRouting类中的数据结构
public Map<DTNHost, ArrayList<Double>> neighborsHistory;
我将在NeighbourhoodSimilarity类中以这种方法调用它
private double countDirectSimilarity(double[][] matrixEgoNetwork, int index) {
double sim=0;
for (int i = 0; i < matrixEgoNetwork.length; i++) {
//here the problem
if (matrixEgoNetwork[i][0]==this.countAggrIntStrength(*i will call it in here*) && matrixEgoNetwork[i][index]==1) {
sim++;
}
}
return sim;
}
以任何方式我都可以在不将地图更改为静态形式的情况下进行此工作? 线索:在类SimBetWithFairRouting中有复制方法,您能帮我吗?
答案 0 :(得分:1)
要访问地图,您必须将该类导入编写方法的类。要访问它而不创建实例,您必须使其静态。
private double countDirectSimilarity(double[][] matrixEgoNetwork, int index) {
double sim=0;
for (int i = 0; i < matrixEgoNetwork.length; i++) {
if (matrixEgoNetwork[i][0]==this.countAggrIntStrength(SimBetWithFairRouting.neighborsHistory) && matrixEgoNetwork[i][index]==1) {
sim++;
}
}
return sim;
}
将地图设为静态
public static Map<DTNHost, ArrayList<Double>> neighborsHistory;
答案 1 :(得分:0)
首先导入SimBetWithFairRouting类所在的包。 然后将该Map(neighborsHistory)设为静态。
并访问该地图,您可以使用
SimBetWithFairRouting.neighborsHistory
是(ClassName.MapName)
答案 2 :(得分:0)