Mapping Class Java
Résolu/Fermé
Hurobaki
KX
- Messages postés
- 53
- Date d'inscription
- dimanche 23 mars 2014
- Statut
- Membre
- Dernière intervention
- 10 mars 2017
KX
- Messages postés
- 16568
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 5 juillet 2022
A voir également:
- Mapping Class Java
- Mapping Class Java ✓ - Forum - Java
- Public class java - Articles
- Main class java - Articles
- Décompiler class java - Télécharger
- Import class java - Articles
3 réponses
KX
Modifié par KX le 8/02/2016 à 18:57
- Messages postés
- 16568
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 5 juillet 2022
Modifié par KX le 8/02/2016 à 18:57
Bonjour,
C'est une mauvaise idée d'appeler tes classes Map et Function...
On ne peut pas te demander de connaître les 4000 classes fournies par Java mais il y en a quelques unes comme Map qui sont incontournables et si tu réutilises ce nom pour faire d'autres classes qui n'ont rien à voir, cela va rapidement poser problème, en particulier si tu fais un import big bang avec java.util.* alors que justement la classe Map de Java est dans java.util
Donc déjà, enlèves l'
Ensuite, les méthodes dans les interfaces ne doivent pas porter le mot clé abstract (c'est réservé aux classes abstraites).
Remarque : un code complet serait le bienvenue, parce qu'en l'état je ne peux pas tester vu qu'il manque des méthodes un peu partout... ce qui ne m'aide pas non plus pour comprendre ce que tu cherches à faire (c'est confus)
PS. En quelle version de Java est-ce que tu codes ?
La confiance n'exclut pas le contrôle
C'est une mauvaise idée d'appeler tes classes Map et Function...
On ne peut pas te demander de connaître les 4000 classes fournies par Java mais il y en a quelques unes comme Map qui sont incontournables et si tu réutilises ce nom pour faire d'autres classes qui n'ont rien à voir, cela va rapidement poser problème, en particulier si tu fais un import big bang avec java.util.* alors que justement la classe Map de Java est dans java.util
Donc déjà, enlèves l'
import java.util.*;pour le remplacer par des imports plus spécifiques (List, ArrayList, Iterator), et précises à quoi est censé servir ta classe "Map" dans ton cas.
Ensuite, les méthodes dans les interfaces ne doivent pas porter le mot clé abstract (c'est réservé aux classes abstraites).
Remarque : un code complet serait le bienvenue, parce qu'en l'état je ne peux pas tester vu qu'il manque des méthodes un peu partout... ce qui ne m'aide pas non plus pour comprendre ce que tu cherches à faire (c'est confus)
PS. En quelle version de Java est-ce que tu codes ?
La confiance n'exclut pas le contrôle
Hurobaki
9 févr. 2016 à 23:42
- Messages postés
- 53
- Date d'inscription
- dimanche 23 mars 2014
- Statut
- Membre
- Dernière intervention
- 10 mars 2017
9 févr. 2016 à 23:42
Merci pour ta réponse, je code avec la dernière version de Eclipse je ne sais pas quelle est la version de Java ...
Je comprends ce que tu me dis j'ai donc fais les changements nécessaires et j'ai "réussi" à trouver une façon de faire qui fait ce que je veux :
Je crée ma Function et je redéfinis la méthode contenue dans l'interface pour ensuite la passer en paramètre à ma méthode map (qui est vrai est un mauvais nom de méthode ...)
Je comprends ce que tu me dis j'ai donc fais les changements nécessaires et j'ai "réussi" à trouver une façon de faire qui fait ce que je veux :
public void resetPartielAll() { Function f = new Function() { @Override public void applyIt(Vehicule v) { v.getCompteur().resetPartiel(); } }; map(f); }
Je crée ma Function et je redéfinis la méthode contenue dans l'interface pour ensuite la passer en paramètre à ma méthode map (qui est vrai est un mauvais nom de méthode ...)
KX
10 févr. 2016 à 08:13
- Messages postés
- 16568
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 5 juillet 2022
10 févr. 2016 à 08:13
"avec la dernière version de Eclipse je ne sais pas quelle est la version de Java"
Eclipse c'est juste un éditeur de texte, c'est la version de Java qui compte !
Si tu codes en Java 8, ce que tu as écris juste au dessus se simplifie comme ceci :
D'où l'intérêt de savoir dans quelle version de Java tu codes !
Eclipse c'est juste un éditeur de texte, c'est la version de Java qui compte !
Si tu codes en Java 8, ce que tu as écris juste au dessus se simplifie comme ceci :
public void resetPartielAll() { map(v -> v.getCompteur().resetPartiel()); }
D'où l'intérêt de savoir dans quelle version de Java tu codes !
Hurobaki
10 févr. 2016 à 10:05
- Messages postés
- 53
- Date d'inscription
- dimanche 23 mars 2014
- Statut
- Membre
- Dernière intervention
- 10 mars 2017
10 févr. 2016 à 10:05
Effectivement ça n'a rien à vois l'éditeur et la version de Java ... J'ai regardé je suis en Java 8 et donc ton bout de code marche très bien !
Merci d'avoir pris le temps de m'expliquer :)
Merci d'avoir pris le temps de m'expliquer :)
KX
10 févr. 2016 à 19:01
- Messages postés
- 16568
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 5 juillet 2022
10 févr. 2016 à 19:01
Du coup tu peux supprimer tes interfaces Map et Function pour utiliser les interfaces standard de Java 8, dans ton cas java.util.function.Consumer conviendrait pour les deux.