首頁 >Java >java教程 >如何在 Java 中將超類型清單轉換為子類型清單?

如何在 Java 中將超類型清單轉換為子類型清單?

DDD
DDD原創
2024-12-27 17:15:12148瀏覽

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

將超類型列表轉換為子類型列表

您可能會遇到這樣的情況:您有一個超類型的物件列表,並且想要將它們轉換為特定的子類型。為了說明這一點,請考慮以下類別層次結構:

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

您可能有一個傳回List 的方法,並且您希望將清單中的每個項目轉換為TestB,從而產生一個List 。 .

直接投射到清單不會成功,因為它違反了 Java 的泛型型別安全規則。但是,您可以透過中間通配符類型進行強制轉換來使用技巧:

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

這種強制轉換是允許的,因為通配符類型既可以強制轉換,也可以強制轉換,儘管會出現未經檢查的警告。透過利用通配符類型作為中介,您可以成功地將超類型清單轉換為所需的子類型清單。

以上是如何在 Java 中將超類型清單轉換為子類型清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn