加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在Java中获取数组元素的类型

发布时间:2020-12-15 04:14:39 所属栏目:Java 来源:网络整理
导读:我有以下方法: public static int arraySum(Object obj) {} 该方法应返回obj中所有元素的总和;这个方法的前提条件是obj是任何维度的整数数组,即Integer,Integer [],Integer [] []等等. 为了编写方法arraySum()的主体,我正在使用foreach循环和递归;但是,对于
我有以下方法:

public static int arraySum(Object obj) {
}

该方法应返回obj中所有元素的总和;这个方法的前提条件是obj是任何维度的整数数组,即Integer,Integer [],Integer [] []等等.

为了编写方法arraySum()的主体,我正在使用foreach循环和递归;但是,对于foreach循环,我需要知道obj的元素是哪种类型.有没有办法找出obj的类型(即Integer,Integer []等)?

编辑:这是我的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;
}

基本上我们利用任何维度的整数数组仍然是Object []的事实.

Object obj = new Integer[][][]{{{1,2,3}},{{4,5,6},{7,8,9}},{{10}}};

System.out.println(arraySum(obj));
55

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读