2

次のようなメソッドがあります。

public static <T extends Enum<T> & Marshallable> String foo(Collection<T> collection, Class<? extends Marshallable>... marshallables);

したがって、渡されるコレクションは、Marshallable インターフェイスを実装する Enum であると予想しています。実行時に具体的な Enum 型がある場合は問題なく動作しますが、クラス オブジェクトから Enum リスト (Marshallable を実装) を動的に作成するテスト メソッドを作成しましたが、このリストを上記のメソッドに渡すのに問題があります。

@Test
public void fooTest() {
...
if (clazz.isEnum()) { // collection enum xml
    List<? extends Enum<? extends Marshallable>> enumList = (List<? extends Enum<? extends Marshallable>>) Arrays.asList(clazz.getEnumConstants());
--> String enumListXml = foo(enumList, clazz);
...

マークされた行はコンパイル エラーになります。メソッドのシグネチャを変更せずにリストを渡す方法がわかりませんでした。

4

1 に答える 1