当前位置:  开发笔记 > 编程语言 > 正文

Java中通用数组最简单的替代方法是什么?

如何解决《Java中通用数组最简单的替代方法是什么?》经验,为你挑选了2个好方法。

假设我有这个:

class test
{
    private T[] elements;
    private int size;
    public test(int size)
    {
        this.size = size;
        elements = new T[this.size];
    }
}

这似乎是不可能的,因为编译器在尝试替换泛型代码之后不知道要调用哪个构造函数.我想知道的是,我该怎么做呢?我想这是可能的,因为它在C++中是多么容易完成.

编辑:对不起,我忘了元素声明中的[].



1> Johannes Sch..:

问题是,由于泛型类型参数由编译器T转换Object(它称为类型擦除),实际上你创建了一个数组Object.你能做的是提供一个Class功能:

class test
{
    private T[] elements;
    private int size;
    public test(Class type, int size)
    {
        this.size = size;
        elements = (T[]) Array. newInstance(type, size);
    }
}

你会在这里找到一个更好的exlanation:Angelika Langer - 我可以创建一个组件类型是类型参数的数组吗?



2> Dan Dyer..:

通用数组的最简单替代方法是使用列表.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有