Fondamentalement, ce que je veux, ce sont deux méthodes publiques avec des valeurs de retour légèrement différentes pour appeler la même méthode pour faire le travail nécessaire. Ils retournent tous deux la valeur de retour de la méthode privée, mais la méthode privée saura comment retourner la valeur correcte en fonction de la méthode publique qui l'a appelée.Modification d'un type de retour en fonction de la méthode d'appel
méthodes Exemple:
public Map<Type1, Type3> doSomething1();
public Map<Type2, Type3> doSomething2();
private Map<Type1/Type2, Type3> doSomething();
Ainsi, dans l'exemple ci-dessus, doSomething() retourne soit Type1 ou Type2 comme type clé de la carte, selon la méthode publique appelée. Il serait capable d'effectuer une vérification simple et de remplir la carte avec des objets du type correct.
Peut-être que cela peut être fait grâce à une réflexion Java intelligente? Je ne suis pas sûr. Tout cela semble assez douteux, donc s'il y a une bien meilleure façon de faire, je suis tout ouïe.
Oui, c'est aussi ce que j'ai imaginé. Je suis d'accord qu'une méthode ne devrait pas avoir de dépendance sur son appelant. Mais que faire si doSomethingFor1() et doSomethingFor2() partagent exactement le même code, la seule chose qui les différencie étant l'objet qu'ils ajoutent comme la clé de la carte? Ce ne serait pas une grosse duplication de code? –
La duplication doit être contrée en refacturant correctement les fonctions et en plaçant le code dupliqué dans les fonctions/méthodes communes. – jrharshath
@Le Dissonant: utilisez donc un paramètre pour indiquer quelle touche ajouter.Ne le déduisez pas de qui vous a appelé. –