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?
3 Réponses :
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>
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.
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; }
L'extension de la classe SimBetWithFairRouting de NeighbourhoodSimilarity peut également vous donner accès à voisinsHistory (si la classe SimBetWithFairRouting n'est pas définitive ).
Quel est le problème auquel vous êtes confronté. Qu'avez-vous résolu ce problème?