java - 通用类型数组的可能方法?

标签 java arrays generics

以这种方式创建通用对象数组是否有任何缺点或性能问题?

QueryObjects instances[] = (QueryObjects<String,String,String>[]) new Object[10];

编辑:我什至在想我是否可以依靠这个:-

QueryObjects instances[] = new QueryObjects[10];

造成这种情况的主要原因是,我不想将通用修复为 <String,String,String>因为有时它也可以像 <Integer,Integer,Integer>对于数组的某些元素。所以我想把它作为运行时的选择。由于这主要用于应用程序的内部工作而不是任何客户端输入,也许我不应该面临错误输入的危险。

最佳答案

您的代码将生成 ClassCastException在运行时。

您应该创建一个 QueryObjects[] 类型的数组并将其转换到 QueryObjects<String, String, String>[] ,或者将来,如果您需要创建变量类型的数组(例如 T[] ),请使用反射: How to create a generic array in Java?

关于java - 通用类型数组的可能方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5108882/

相关文章:

java - Java 享元示例

java - SimpleOpenNI 记录和回放用户跟踪数据

java - 如何设置 SWT 按钮上显示的文本的边距/填充?

c - 如何将字符串传递给C中的函数

javascript - PHP 多个查询字符串值到数组

php - 循环 preg_match_all 结果

c# - 将泛型对象添加到泛型集合时出现编译时错误

java - 使用 autoSizeColumn 时列在 XSSF Apache POI 中隐藏

java - 泛型 - 函数返回类型与参数类型相同?

java - Kotlin 生成通用 java 代码