Je dois mettre en œuvre la fonction qui ont la même fonctionnalité, mais le type de retour différent et le paramètre de la fonction est également identique.
public static List<Base> remove(List<Subclass> arrange ) { List<Base>update = new ArrayList<>(); for(Subclass arranging : arrange){ //For-loop body here } return update; } public static List<Subclass> remove(List<Subclass> arrange ) { List<Subclass>update = new ArrayList<>(); for(Subclass arranging : arrange){ //For-loop body here } return update; }
3 Réponses :
Si vous avez une méthode qui a la même logique avec différents types de paramètres, vous pouvez créer une version générique de cette méthode. Dans votre cas, une telle méthode ressemblerait à: alors vous pouvez utiliser cette méthode avec n'importe quel espère que cela aide. P > p> t code> (
base code> ou
ou
ou
ou
Sous-classe code>) et la méthode fonctionnera avec les éléments de la liste Pass comme argument et renvoient également le type approprié: p>
Ce dont vous avez besoin ici est appelé méthode générique.
Une déclaration de méthode générique unique qui peut être appelée avec des arguments de différents types. La fonction générique que vous devez ressemblera à ce que ceci: p> dans le cas où il y a plus d'un type générique et que l'une est la sous-classe de l'autre (par exemple, la base de la baseClass et la sous-classe) , la déclaration ressemblera à p> pour plus d'informations, vous pouvez vous référer à https://www.tutorialspoint.com/java/java_generics.htm p> p>
Je vois que vous êtes dans une situation où deux méthodes font presque la même chose, mais présentent le résultat différemment à l'appelant. Utilisez des génériques si le domaine du type de retour est plus grand.
Si les types de retour sont limités, vous pourriez développer une relation entre base et sous-classe. Et utilisez des co-variances pour traiter plusieurs types de retour. P> Public Static E Supprimer (Liste
Vous pouvez utiliser une méthode avec des génériques au cas où la seule différence est le type de retour.
Dupliqué possible de Comment faire une méthode Java Retourner générique générique Liste de tout type?
Il n'est pas possible de le faire s'ils ont le même nom. Comment le compilateur serait-il capable de savoir lequel exécuter quand vous appelez supprimer (liste)? Celui qui renvoie la liste ou liste ?
Java ne prend pas en charge la surcharge de la méthode basée sur des retours. Renommez la méthode et appelez-en un d'un autre, si vous souhaitez éviter la redondance. lien
Vous pouvez créer une méthode courante appelez supprimer (liste arrangez) et appelez-la des deux classes.
Il suffit de garder
list Supprimer (Liste ) code> et déposez l'autre. Il n'y a aucune raison de garder une deuxième méthode.