相关疑难解决方法(0)

如何在Java中创建通用数组?

由于Java泛型的实现,您不能拥有这样的代码:

public class GenSet<E> {
    private E a[];

    public GenSet() {
        a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在保持类型安全的同时实现这一点?

我在Java论坛上看到了这样的解决方案:

import java.lang.reflect.Array;

class Stack<T> {
    public Stack(Class<T> clazz, int capacity) {
        array = (T[])Array.newInstance(clazz, capacity);
    }

    private final T[] array;
}
Run Code Online (Sandbox Code Playgroud)

但我真的不知道发生了什么.

java arrays generics reflection instantiation

1045
推荐指数
15
解决办法
74万
查看次数

我怎么能初始化通用数组

我已经给了一个骨架类"OrderSet",它实现了一个类"Set",其中一个变量T []项是通用的,我想把它初始化为一个包含5个元素的数组,但在做了一些阅读之后,我得知您无法初始化通用数组,如果是这样的话我怎么能初始化数组呢?

这是班级

public class OrderSet<T extends Comparable> implements Set<T> {

    private T[] items;
    private int theSize;

    public OrderSet()
    {
        items = (T[]) new Set[5];
    }

    @Override
    public void add(T s)
    {

    }

    @Override
    public void show()
    {

    }

}
Run Code Online (Sandbox Code Playgroud)

java arrays generics

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

arrays ×2

generics ×2

java ×2

instantiation ×1

reflection ×1