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

Java:泛型类型数组作为函数参数

如何解决《Java:泛型类型数组作为函数参数》经验,为你挑选了1个好方法。

我有一些Java 8代码,如下面的代码片段.

public class Test {
  static protected > T[] myFunction(T[] arr) {
    // do stuff...
    return arr;
  }

  public static void main(String[] args) {
    int[] a = new int[] {1,4,25,2,5,16};
    System.out.println(Arrays.toString(myFunction(a)));
  }
}

当我尝试运行它时,我收到以下错误:

线程"main"中的异常java.lang.Error:未解决的编译问题:
LottoResult类型中的方法myFunction(T [])不适用于参数(int [])

为什么会发生这种情况,我如何重写它以便能够将int[]数组传递给myFunction



1> Konstantin Y..:

数组T[]意味着数组是某种引用类型T,而您传递的是基元数组(int[]).这就是您收到编译错误的原因.

为了使其正常工作,您需要:

Integer[] a = new Integer[] {1,4,25,2,5,16};

这将创建一个引用类型(Integer[])的数组,因为将发生自动装箱.

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