是否可以对不同的数据类型重用相同的函数? 所以,比如我有,如果我想这样做有一个字节的ArrayList我必须这样做对多种数据类型使用相同的函数
public static byte[] arrayListToByteArray(ArrayList<Byte> list) {
byte[] out = new byte[list.size()];
int count = 0;
for (byte x : list) {
out[count] = x;
count++;
}
return out;
}
所以我是一个整数的ArrayList转换成整数数组
public static int[] arrayListToIntArray(ArrayList<Integer> list) {
int[] out = new int[list.size()];
int count = 0;
for (int x : list) {
out[count] = x;
count++;
}
return out;
}
但是功能想知道是否有更好的方法,而不仅仅是用不同的数据类型重复相同的代码,并且基本上具有整个类的相同代码?或者我可以做些什么,以便它可以用于所有数据类型?
若你想从包装器中返回原始类型。如果你不介意返回一个'Byte []'或'Integer []',那么你可以直接调用'list.toArray();' –
这只是我使用的一个例子,并非特定于该函数,但无论如何感谢。 – Nightfortress
是的,一般出于性能和Java-y的原因,你不想为原始类型做这件事。最好将Java分成基于原始/数组的东西以及基于对象/泛型的东西。你可以使用Number.class来解决这个问题,但是有一些原因,如流和函数的原始版本。如果你来自C#,这是一个重大的差异。 – Novaterata