生成泛型类的数组

生成泛型类的数组

https://img1.sycdn.imooc.com//climg/62fd77b009eb744b25601600.jpg

相关代码:

package 排序;

public class  Test<E>{
    //这是一个负责测试的类,它可以实现
    //1.自动创建有序或者无序数组的方法(可以规定元素数量和随机数范围)
    //2.提供排序时间测试代码文档(用于单个类测试时的复制黏贴)

    /**
     * 生成一个有序数组
     * @param number
     * @param range
     */
    public static <E> void Generate_Ordered_Array(int number,int range){
        String arr[]=new String[2];
        E data[]=new E[number];
    }

    /**
     * 生成一个无序数组
     * @param number
     * @param range
     */
    public static void Generate_Unordered_Array(int number,int range){

    }
}

老师,为什么这里的数组不可以使用泛型啊,或者是,我应该如何去实现一个泛型数组

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小黑 2022-08-18 10:35:36

同学你好,数组可以使用泛型,但不能用new的方法开辟一个内存空间,但是可以通过非new的方法传递泛型数组,如下所示:

public static <T> T[] fun(T... arg) {
    return arg;
}

public static void main(String[] args) {

    String[] fun = fun("aa", "bb", "cc");
    for (String s : fun) {
        System.out.println(s);
    }
}

祝学习愉快!

  • 提问者 Star3327752 #1

    这个数组泛型为啥放在方法旁边啊,还有这个数组是咋使用的啊

    2022-08-18 10:47:50
  • 好帮手慕小黑 回复 提问者 Star3327752 #2

    同学你好,

    1. 泛型方法中的第一个<T>的含义是统一标识符,当在返回值、传入的参数、实现体中出现<T>,则代表它会被统一替换成传入的类型。例如传入的泛型为 String时,后面所出现T的位置都会被String所替换。

    2. 在fun方法中的数组和普通数组使用的方法一样,例如:

    public static <T> T[] fun(T... g) {
        for (T t : g) {
            System.out.println(t);
        }
        return g;
    }

    祝学习愉快!

    2022-08-18 11:28:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师