问题描述
public class Main
{
public static void main(String[] args) {
List<?> unbounded = new ArrayList<String>();
List<String> strList = (List<String>) unbounded; // Is this a capture conversion?
List<Integer> intList = (List<Integer>) unbounded; // Is this a capture conversion?
}
}
上面的代码片段是在 Java 中工作的捕获转换示例吗?
根据 JLS,
存在从参数化类型 G
我对上述语句的理解如下:如果通配符的形式为“?”,只要“S”在 到 G 的捕获转换>Object(上限)和 null(下限)。
所以,例如在上面的代码片段中,将 'List>' 转换为 'List
如果是这样,捕获转换会不会破坏类型安全?根据 JLS 的说法,引入捕获转换是为了在不破坏类型系统的情况下使通配符更有用?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)