相关疑难解决方法(0)

将运行时已解析的参数传递给具有多个绑定类型的编译错误的方法

我有一个看起来像这样的方法:

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

所以我期待传递的集合是一个实现Marshallable接口的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);
...
Run Code Online (Sandbox Code Playgroud)

标记的行将给出编译错误.我无法弄清楚如何在不更改方法签名的情况下传递列表.

java generics

2
推荐指数
1
解决办法
506
查看次数

标签 统计

generics ×1

java ×1