java - 转换为组合参数类型的数组
问题描述
要创建参数类型数组,有两种方法:
- 在创建中从 new Object[] 投射。
- 创建 Object[] 并在每次推送或检索时强制转换。
每次创建 Object[] 并强制转换。
A 想创建一个泛型类:
public class Element<K, V> {
private K key;
private V value;
private Element<K, V> next;
// Getters and Setters
}
并创建一个元素数组。虽然第二个解决方案工作正常:
public class HashTable<K, V> {
private final int ARRAY_SIZE = 7;
private Object [] holder;
@SuppressWarnings("unchecked")
public HashTable() {
holder = new Object[ARRAY_SIZE];
}
void push(K key, V value) {
//Some code
Element<K, V> element = (Element<K, V>)holder[index];
// Some code
}
public V getValue(K key) {
//some code
Element<K, V> e = (Element<K, V>)holder[index];
// Some code
}
}
当我尝试第一个解决方案时,我收到错误 Cannot cast from Object[] to Element:
private Element<K, V> holder;
@SuppressWarnings("unchecked")
public HashTable() {
holder = (Element[]) new Object[ARRAY_SIZE]; //ERROR
}
解决方案
推荐阅读
- c# - 使用存储过程 For XML Path 直接读入绑定到 DataGridView 的 DataSet?
- latex - 将gnuplot与latex结合:方法和输出
- excel - 强制将短日期转换为英国格式 DD-MM-YYYY
- python - 算法太慢;我是否有更高的中奖几率我选择相同的 4 个号码
- ios - 在集合视图中选择和删除图像
- swift - Swift:检查对象是否不是类的实例
- java - JavaFX:如何选择平铺并添加数字和边框线?
- angularjs - 使用 tomcat 服务器开发 angularJS 应用程序
- javascript - 如何动态更改 HTML“rect”标签上的“a href”链接?
- javascript - 通过java脚本在cmd(Windows)上运行python脚本