java - 为什么在外部参数化类中创建一个组件类型为内部类的数组被视为“通用数组创建”?
问题描述
public class A<T> {
B[] bs = new B[5];
private class B {
}
}
我收到一个编译时错误,说new B[5]
是通用数组创建。我没想到这是因为:
- B 本身没有参数化。
- B 不是 A 的类型参数。
考虑到这些原因,为什么new B[5]
仍然认为是泛型数组创建?
解决方案
因为创建一个实例B
(因为它是一个内部类)的唯一方法是使用一个参数化的实例A
。简单的修复,改变
private class B
到
private static class B
推荐阅读
- azure - 是否可以选择将文件从 Azure VM 复制到 VMSS 中的多个 VM
- database - 如何使用 AWS 数据库删除保护删除数据库
- mongodb - 日志文件包括字段:“lsid”
- git - 使用bfg的参数是什么
- python - 在 FOR 循环中使用字典键指定列表
- python - 计算python中单词的频率
- javascript - 为什么使用 react-redux 时 props 未定义?
- javascript - 在数组中查找对象?
- android - 视图绑定不适用于“包含”:不兼容的类型:ProgressBarLayoutBinding 无法转换为 ViewDataBinding
- r - Rstudio 谷歌分析 API