如何在同一个类中调用一个方法到另一个方法

时间:2019-03-13 06:48:48

标签: java methods

我有一个名为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() 在另一个班上,你能帮我吗?

3 个答案:

答案 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方法。