如何在Java中创建安全的通用数组对象?

时间:2019-02-03 15:16:13

标签: java arrays generics

嘿,这是我的第一篇文章,我有这个问题 如您所见,这是必需的方法enter image description here

所以我尝试创建一个数组,但是显示了异常 有什么建议吗?

这是我的代码

public class GArrayFactory {

// Create and return an array of size n

public static <T extends Comparable<T>> GArray<T>[] getGArray(int n) {

    GArray<T>[] array = (GArray<T>[]) new Object[n];

    return array ;

,这是例外

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LGArray;
at GArrayFactory.getGArray(GArrayFactory.java:9)

1 个答案:

答案 0 :(得分:-1)

您可以使用以下方法创建通用数组:

public class GArrayFactory<E> {

    private E[] array;

    public GArrayFactory(Class<E> clazz, int size) {
        final E[] array = (E[]) Array.newInstance(clazz, size);
        this.array = array;
    }

    public E[] getArray() {
        return array;
    }
}

可以找到更多的解释here