app*_*tix 3 java arrays integer object
我有以下方法:
public static int arraySum(Object obj) {
}
Run Code Online (Sandbox Code Playgroud)
该方法应返回obj中所有元素的总和; 该方法的先决条件是,obj是任意尺寸的一个整数数组,即Integer,Integer[],Integer[][],等.
为了编写方法的主体arraySum(),我使用了foreach循环和递归; 但是,对于foreach循环,我需要知道obj的元素是哪种类型.有没有办法找出类型(即Integer,Integer[]的,等等)obj?
编辑:这是我的CS课程的作业.我不想简单地问如何编写方法,这就是我问这样一个特定问题的原因.
我相信它比你想象的要简单:
public static int arraySum(Object obj) {
if (obj.getClass() == Integer.class)
return ((Integer) obj).intValue();
int sum = 0;
for (Object o : (Object[]) obj)
sum += arraySum(o);
return sum;
}
Run Code Online (Sandbox Code Playgroud)
基本上我们利用Integer任何维度的数组仍然是一个事实Object[].
Object obj = new Integer[][][]{{{1,2,3}},{{4,5,6},{7,8,9}},{{10}}};
System.out.println(arraySum(obj));
Run Code Online (Sandbox Code Playgroud)
55
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |