无法将整数添加到 ArrayList [重复]

2023-12-31

我创建了一个ArrayList:

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Arrays;
class Main{
    static ArrayList<Long> fibo_list=new ArrayList<Long>();
    static int current_index;
    public static void main(String args[]){
        fibo_list.add(0);
        fibo_list.add(1);
        fibo_list.add(1);

三个 fibo_list.add() 抛出相同类型的错误。这是第一个:

error: no suitable method found for add(int)
    fibo_list.add(0);
             ^
method ArrayList.add(int,Long) is not applicable
  (actual and formal argument lists differ in length)
method ArrayList.add(Long) is not applicable
  (actual argument int cannot be converted to Long by method invocation conversion)
method AbstractList.add(int,Long) is not applicable
  (actual and formal argument lists differ in length)
method AbstractList.add(Long) is not applicable
  (actual argument int cannot be converted to Long by method invocation conversion)
method AbstractCollection.add(Long) is not applicable
  (actual argument int cannot be converted to Long by method invocation conversion)

现在它的工作原理是这样的:

fibo_list.add((long)0);
fibo_list.add((long)1);
fibo_list.add((long)1);

但为什么它不隐式地铸造自己呢?


您对选角和拳击感到困惑。

当 int 转换为 Integer 时 - 称为装箱,逆向过程称为拆箱。

JAVA 支持自动装箱,这意味着您的原语将在需要时自动转换为其包装类,反之亦然。 例如 int -> Integer、long -> Long 等。

Java 还支持基元之间的转换,这意味着 int 基元可以隐式转换为 long 基元。

您想要实现的是上述操作的组合。您想要将 int 转换为 Long 这将需要 2 个步骤,这可以通过 2 种不同的方式实现(让我们假设以下是可能的):

Way 1:

  1. 将 int 转换为 long
  2. 拳击长到长

Way 2:

  1. 拳击 int 到 整数
  2. 将整数转换为长整型

由于没有明确选择哪种方式,因此JAVA不允许任何2步过程作为自动转换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将整数添加到 ArrayList [重复] 的相关文章

随机推荐