首页 > 解决方案 > 转换为组合参数类型的数组

问题描述

要创建参数类型数组,有两种方法:

每次创建 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
}

标签: java

解决方案


推荐阅读