Wie konvertiert man ArrayListsubClass zu ArrayListsuper in Java

7

Ich habe eine Methode setData(ArrayList<super> list) , so dass jeder, der Daten setzen möchte, seine eigene Entität haben kann, muss nur von der Superklasse ausgehen. aber wenn sie setData aufrufen, wie konvertieren sie ArrayList in ArrayList?

Jetzt benutze ich setData (new ArrayList (list)), aber es ist keine gute Lösung.

Jeder kann mir sagen, wie man konvertiert oder eine andere Lösung kann das Problem vermeiden. Sehr geschätzt!

    
dreamtale 12.03.2012, 04:04
quelle

2 Antworten

15

Es hängt davon ab, was Sie danach mit der Liste machen wollen. Wenn Sie nur davon lesen, können Sie Ihre Methode wie folgt deklarieren:

%Vor%

Sie können dieser Liste jedoch nichts hinzufügen, weil Sie nicht wissen, was ? ist. Eine weitere Option ist das Erstellen einer Kopie beim Aufruf der Methode:

%Vor%     
vanza 12.03.2012, 04:13
quelle
4

Anstatt zu codieren

%Vor%

Sie könnten einfach

verwenden %Vor%

Wenn Sie die Liste zuerst auf "Object" und dann auf "ArrayList" umleiten, wird der Compiler gezwungen, den Methodenaufruf zu akzeptieren. Als zusätzlichen Bonus leiden Sie nicht unter den Leistungsausgaben beim Erstellen einer neuen Array-Liste.

    
skiller3 12.03.2012 04:59
quelle

Tags und Links