Heim >Java >javaLernprogramm >Wie kann ich in Java eine Liste von Supertypen in eine Liste von Untertypen umwandeln?

Wie kann ich in Java eine Liste von Supertypen in eine Liste von Untertypen umwandeln?

DDD
DDDOriginal
2024-12-27 17:15:12148Durchsuche

How Can I Cast a List of Supertypes to a List of Subtypes in Java?

Umwandeln einer Liste von Supertypen in eine Liste von Subtypen

Es kann vorkommen, dass Sie eine Liste von Objekten eines Supertyps haben und Wunsch, sie in einen bestimmten Untertyp umzuwandeln. Betrachten Sie zur Veranschaulichung die folgende Klassenhierarchie:

public class TestA {}
public class TestB extends TestA {}

Möglicherweise haben Sie eine Methode, die eine Liste zurückgibt, und Sie möchten jedes Element in der Liste in TestB umwandeln, was zu einer Liste führt. .

Lösung

Direkt angießen Liste wird nicht erfolgreich sein, da es gegen die Sicherheitsregeln für generische Java-Typen verstößt. Sie können jedoch einen Trick anwenden, indem Sie einen Zwischen-Wildcard-Typ umwandeln:

List<TestB> variable = (List<TestB>)(List<?>) collectionOfListA;

Diese Umwandlung ist zulässig, da Wildcard-Typen sowohl in als auch von Wildcard-Typen umgewandelt werden können, allerdings mit einer ungeprüften Warnung. Durch die Verwendung des Platzhaltertyps als Vermittler können Sie Ihre Liste von Supertypen erfolgreich in die gewünschte Liste von Untertypen umwandeln.

Das obige ist der detaillierte Inhalt vonWie kann ich in Java eine Liste von Supertypen in eine Liste von Untertypen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn