1. ホーム

[解決済み] [Solved] スーパータイプのリストをサブタイプのリストにキャストする方法は?

2022-03-31 11:28:04

質問

例えば、2つのクラスがあるとします。

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

を返すメソッドを持っています。 List<TestA> にキャストし、そのリスト内のすべてのオブジェクトを TestB で終わるように List<TestB> .

解決方法は?

にキャストするだけです。 List<TestB> しかし、あるパラメータの一般型を別のパラメータにキャストすることはできないので、これはうまくいきません。しかし、中間的なワイルドカード型を通してキャストすることは可能です(ワイルドカード型との間でキャストすることは可能ですが、警告がチェックされないだけです)。

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