0
votes

Comment implémenter la méthode qui ont des paramètres identiques mais différentes signature

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;
}  


6 commentaires

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 ) et déposez l'autre. Il n'y a aucune raison de garder une deuxième méthode.


3 Réponses :


1
votes

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 à: xxx

alors vous pouvez utiliser cette méthode avec n'importe quel t ( base ou ou ou ou Sous-classe ) et la méthode fonctionnera avec les éléments de la liste Pass comme argument et renvoient également le type approprié: xxx

espère que cela aide.


0 commentaires

0
votes

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: xxx

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 à xxx

pour plus d'informations, vous pouvez vous référer à https://www.tutorialspoint.com/java/java_generics.htm


0 commentaires

0
votes

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. Public Static E Supprimer (Liste Arranger)

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.


0 commentaires