当前位置: 首页 > 知识库问答 >
问题:

我想用泛型做数组

那昊
2023-03-14

我想使用泛型制作数组。
但出现编译错误。
如何使用泛型制作数组?

public class Test {

    public static void main(String[] args) {
        String[] datas = Test.changeToArray("apple");
        for (String data : datas) {
            System.out.println(data);
        }
        Boolean[] bools = Test.changeToArray(true);
        for (Boolean bool : bools) {
            System.out.println(bool);
        }
    
    }

    public static <T> T[] changeToArray(T data) {
        // i want this..
        // but this is compile error
        // Cannot create a generic array of T
        T[] datas = new T[] {data};
        return datas;
    }

}

共有1个答案

魏威
2023-03-14

请通过泛型的限制。在Java中不允许创建参数化类型的数组。请参阅java文档。

 类似资料:
  • 缘起 我记得自己很小的时候(大概3岁还是4岁),我爸喜欢用红白机玩坦克大战和魂斗罗。但是我妈不喜欢,她认为打游戏会影响休息,而且伤眼睛,还减少电视机的寿命。我印象里面他们为此吵过架,我妈赢了,还把游戏机摔坏了,我们就没得玩了。 直到再后来我快10岁,我爸以学电脑、练五笔打字为由,又弄回来一台小霸王学习机。放假的时候我们爷俩终于又可以一起通关魂斗罗了。但是平时我妈依然不让我玩,而且这次我爸也跟她站在

  • 我想用一个按钮和文本框进行数学运算,当输入文本框操作如25 5-10 7并按下按钮显示结果时,我正在尝试这样做,但我做不到。在这段代码中,我为文本框中的每个字符创建一个,我希望在firstvalue参数和op参数中存储25个,在secondvalue参数中存储5个,并使操作25 5=30,将其存储在firstvalue参数和store-in op中,在secondvalue中存储10个,并将其存储

  • 问题内容: 我的任务是用Java编写哈希表,该哈希表必须适用于任何数据类型。我正在编写的代码规则如下:-哈希表必须具有一个数组作为基础数据结构,其大小在构造对象时确定- 发生冲突时,应该放置碰撞的元素链接列表,该列表包含哈希表中该索引(键)处的所有元素 因此,对于基础数据类型,我做了一个LinkedList类型的数组(自定义,不是Java API LinkedList)。 当然,问题是实例化此数组

  • 我在我的一个实用程序类中有一个方法,它接受一个集合和一个类对象,并返回一个Iterable实例,该实例可以遍历作为指定类实例的集合的所有成员。其签名为: 这对于大多数用例都非常有效,但现在我需要将其与泛型类

  • 问题内容: 我想知道是否有可能编写一个接受多种通用类型的函数,如下所示: 那行得通吗?每个参数中的泛型是否意味着每个参数必须具有与泛型相同的类型T? 问题答案: 是的-可能的(虽然不是使用方法签名),是的,使用签名的类型必须相同。 使用给定的签名,必须在呼叫站点将其与单个类型(例如 或 )相关联。但是,您可以声明采用多个类型参数的方法签名 请注意,在上面的签名中,我已经声明了类型以及签名本身。因此

  • 问题内容: 因此,我正在开发这个通用的HashTable类,并且希望将其通用地用于任何数量的传入类型,并且我还想将内部存储数组初始化为LinkedList的数组(出于冲突目的),其中为确保类型安全,每个LinkedList都被预先指定为HashTable类中的泛型类型。我该怎么做?以下代码最能阐明我的意图,但当然不会编译。 问题答案: Java中的泛型不允许创建具有泛型类型的数组。您可以将数组转换