'无法从Object转换为int#39;I'我确定数据是整数[英] 'Cannot cast from Object to int' error when I'm sure the data is an integer

问题描述

我确定我在这里做了一些非常愚蠢和基本的事情,但我似乎无法弄清楚这一点.我基本上有一个方法,它需要一堆数字,做一些工作并返回一个整数列表.

然后我获取该列表并将其发送到一个方法以进行更多工作,但是当我收到错误时,因为 JVM 认为它是一个对象.这是一个简单的示例(我正在对其进行一些编辑,以便您了解这个想法并且它不是很长):

public static List normalizer_list(double[] data) {
    List normalizer_list = new ArrayList();
    for (double current_data : data) {
        Integer modified_data = (int) (current_data *1000);
        normalizer_list.add(modified_data);
    }
    return normalizer_list;
}


private static void do_some_work(List normalizer_list) {
    // TODO Auto-generated method stub

    for (int i = 0; i < norm_data.size(); i++) {
        Integer current_norm_data = (int) normalizer_list.get(i);

起初我尝试使用 norm_data.get(i) 进行数学运算,但它给了我错误,因为它认为它是一个对象,所以我尝试将它转换为一个整数,它说我不能这样做.我做错了什么(是我使用列表的方式吗?)

推荐答案

Cast as an Integer:

Integer current_norm_data = (Integer) norm_data.get(i)

或者更好的是,将 normalizer_list 设为 List<Integer>,然后在 do_some_work 方法中接受一个整数列表.

本文地址:https://www.itbaoku.cn/post/978435.html

相关标签/搜索