首页 > 解决方案 > 如何在java中获取字节数组列表对象的总和

问题描述

我试图从位置 1 到结束的所有字节数组列表的总和,当我尝试添加时,我得到错误,因为“运算符 + 未定义参数类型 int,对象”

我有一个 finalbyte 数组列表

ArrayList finalbyte = new ArrayList();
    finalbyte.add(A);
    finalbyte.add(B);
    finalbyte.add(C);
    finalbyte.add(D);

我正在添加来自不同来源的每个值,Syso 的输出看起来像 {67,8,1,-25,4,2,2,2,2},每次运行的值都不同。现在我正在尝试添加这些值从 {8,1,-25,4,2,2,2,2} 第一到结束位置。

    for(int i=0;i<finalbyte.size();i++) {
    System.out.println(""+finalbyte.get(i));
    value=value+finalbyte.get(i);
    }

我想要 sum, value= {from 1st + end of byte list} 和 finalbyte.add(value); 如何添加字节数组值并将其再次添加回字节数组列表?

标签: java

解决方案


它不明白 finalbyte 是什么类型。很多时候这会更明显,但你所做的要求它知道它需要两个整数来相加,而不是一个整数“对象”

有两种方法可以告诉编译器它是一个整数——当你把它拿出来时,你可以强制转换它:

... +(Integer)finalbyte.get(i);

或者您可以在声明时使用泛型(BY FAR 更好的解决方案):

ArrayList<Integer> finalbyte = new ArrayList<>();

一旦编译器知道它是一个 Integer,它就可以正确地将整数自动拆箱为 int,然后 + 将起作用。

请注意,您的其他操作有效,因为将字符串添加在一起实际上使用 .toString() 方法 - 一种在“对象”本身上定义的方法,因此它始终可用。


推荐阅读