2
votes

Comment appeler la structure de données à partir d'autres classes

Je veux appeler la structure de données d'une autre classe mais je trouve un problème ici, pouvez-vous m'aider?

voici le code source

La structure de données de la classe SimBetWithFairRouting

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;

}

et je l'appellerai dans cette méthode de la classe NeighbourhoodSimilarity

public  Map<DTNHost, ArrayList<Double>> neighborsHistory;

Est-ce que je peux faire ce travail sans changer la carte en forme statique? indice: dans la classe SimBetWithFairRouting avait une méthode de réplication, pouvez-vous m'aider?


1 commentaires

Quel est le problème auquel vous êtes confronté. Qu'avez-vous résolu ce problème?


3 Réponses :


0
votes

Commencez par importer ce package où réside votre classe SimBetWithFairRouting. puis faites de cette carte (voisinsHistory) comme statique.

et pour accéder à cette carte, vous pouvez utiliser

    SimBetWithFairRouting.neighborsHistory

qui est (ClassName.MapName)

p>


2 commentaires

puis-je le faire sans statique ?, parce que j'ai eu la méthode répliquée dans la classe SimBetWithFairRouting, statique n'est-il pas la même chose avec répliquer?


Vous devez le rendre statique sinon vous devez créer un objet de cette classe pour accéder à cette variable.



1
votes

Pour accéder à la carte, vous devez importer cette classe dans la classe où vous écrivez la méthode. Et pour y accéder sans créer d'instance, vous devez la rendre statique.

public static Map<DTNHost, ArrayList<Double>> neighborsHistory;

Rendre votre carte statique

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;

}


0 commentaires

0
votes

L'extension de la classe SimBetWithFairRouting de NeighbourhoodSimilarity peut également vous donner accès à voisinsHistory (si la classe SimBetWithFairRouting n'est pas définitive ).


0 commentaires