gpt4 book ai didi

java - 制作通用函数(对于基元和对象)

转载 作者:行者123 更新时间:2023-12-02 04:40:54 26 4
gpt4 key购买 nike

我正在创建一个 Java 函数randomize,它获取一个参数,即一组对象。基本上,该函数随机化整个数组,并且由于数据类型不相关,因此方法签名为:public static Object[] randomize(Object[] array)。然而,这不适用于 int、double 等数组(对于基元数组也是如此)。我怎样才能让它发挥作用?我不想为对象提供一个函数,为每种基本类型提供 8 个重载函数。如果有一个用于对象数组的函数和一个用于所有基本类型的函数,我可以接受。我怎样才能做到这一点?

谢谢你,赫克托

最佳答案

该算法可以创建索引的排列。诸如 Arrays.sort 之类的一些操作已经可以在通用基础上使用。但一般情况下只能使用反射,在不操作xxx[]时,成本较高。

int[] intArray = new int[10];
randomize(intArray);

void randomize(Object array) {
if (array == null || array.getClass().isArray()) {
throw new IllegalArgumentException();
}
... use reflection
}

关于java - 制作通用函数(对于基元和对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30216993/

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