我有一个用例,其中数组作为对象传递。我必须在运行时找出数组的类型并生成相同类型的列表。
public class Test {
public static Object getArray(Object value) {
Object returnVal = value;
if(value!=null && value.getClass().isArray()){
returnVal = Arrays.asList(value).get(0);
}
return returnVal;
}
public static void main(String[] args) {
int[] k = new int[]{1,2,3,4,43,4};
Object val = getArray(k);
// val should be 1st element of the array. So, val should be equal to 1.
}
}
如果我运行以下代码,我会得到一个 List 的结果,其中完整的数组作为第一个元素。
我只需要返回数组的第一个元素。
传递的值可以是任何值,因此我无法更改返回类型。
我解决了你的问题:
import java.lang.reflect;
public static Object getArray(Object value){
if (value != null && value.getClass().isArray()){
return Array.getLength(value) == 0 ? null : Array.get(value, 0);
}
return value;
}
如果您确定数组的长度不能为零,您可以像这样编写 return 语句:
return Array.get(value, 0);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句