Im actuellement en train d'essayer d'écrire une carte bidirectionnelle depuis (pour autant que je peux voir) Java n'en fournit pas. Mon code est le suivant.Comment se déplacer "Effacement de la méthode est la même que d'une autre méthode" lors de l'écriture d'une carte bidirectionnelle
private static final class ColourCharTwoWayMap<E,F> {
private ArrayList<E> eArrayList;
private ArrayList<F> fArrayList;
private ColourCharTwoWayMap() {
eArrayList = new ArrayList<E>();
fArrayList = new ArrayList<F>();
}
public void put(E colour, F ch) {
eArrayList.add(colour);
fArrayList.add(ch);
}
public F get(E colour) throws ArrayIndexOutOfBoundsException {
return fArrayList.get(eArrayList.indexOf(colour));
}
public E get(F ch) throws ArrayIndexOutOfBoundsException {
return eArrayList.get(fArrayList.indexOf(ch));
}
}
Eclipse me donne l'erreur "Erasure de méthode get (E) est identique à une autre méthode de type SaveManager.ColourCharTwoWayMap". De googling, je comprends que Java n'aime pas les méthodes génériques qui font la même chose, et que c'est quelque chose à voir avec le dépassement et Java ne sachant pas quelle méthode utiliser. Tout est un peu sur ma tête.
Quelle est la meilleure façon de faire ce que j'essaie de faire ci-dessus? (ie avoir une méthode qui prend un objet de type E et retourne un objet de type F et vice versa).
Juste une question de côté, pourquoi n'êtes-vous pas utiliser une carte interne? – Koekje