首页 > 解决方案 > Java 嵌套泛型转换(?超类型)

问题描述

我试图解决一个我似乎找不到答案的问题。考虑以下 2 个示例:

{
    // this works.
    Consumer<CharSequence> c = F -> {};
    test(c);
}
static void test(Consumer<? super String> c) { /* content */}

和:

{
    // doesn't compile
    List<Consumer<CharSequence>> list = new ArrayList<>();
    test(list);
}
static void test(List<Consumer<? super String>> list) { /* content */ }

第二个示例没有编译/类型安全可能是有正当理由的,但我找不到/推断出这个原因。因此,感谢您对澄清这一点的任何帮助。

标签: javagenericscastingbounded-wildcard

解决方案


推荐阅读