gpt4 book ai didi

java - 我如何清除对 Arrays.copyof() 的这种模棱两可的调用?

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:29 25 4
gpt4 key购买 nike

我在我的 Android 手机上运行 AIDE,但在编译以下 Java 代码时遇到了问题:

elements = Arrays.copyOf(elements, elements.length * 2);

在这里elements类型为 int[] .我从 AIDE 得到的错误是

Several methods are applicable to (int[], int): 'java.util.Arrays.copyOf(int[], int)' and 'java.util.Arrays.copyOf<T>(T[], int)'

我原以为编译器会选择前一个选项,但事实并非如此。我该如何解决这个问题?

最佳答案

这是一个编译器/IDE 问题。但是,Arrays.copyOf 是一个非常简单的函数,因此如果问题无法通过 IDE/编译器更新解决,只需编写您自己的版本即可。另一种方法是使用反射来调用它。但它会带来一些运行时开销,并且还会使代码看起来很笨拙,因此我建议实现您自己的版本。

代码如下:

public static int[] copyOf(int[] original, int newLength) {
int[] copy = new int[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}

当然,如果您随后对 System.arraycopy 遇到同样的问题,那么这将不起作用。只需尝试一下。如果它不起作用,您可以将它放在一个辅助类中,并使用一个无错误的编译器来编译这个辅助类。

关于java - 我如何清除对 Arrays.copyof() 的这种模棱两可的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12457624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com