java数组泛型转换

有如下java代码:

// 求两个数组的并集,利用set的元素唯一性
    public static <T> T[] union(T[] arr1, T[] arr2) {
        Set<T> set = new HashSet<>();
        Collections.addAll(set, arr1);
        Collections.addAll(set, arr2);
        return set.toArray(new Object[set.size()]);
    }

问:该段代码报错,提示返回的类型应该是Object[],怎么才能返回T[]?

阅读 3.5k
1 个回答

return set.toArray(arr1);

toArray()方法也是泛型的,返回类型与参数类型一致。你的是Object数组当然是不行的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题