自动添加新对象到公共静态ArrayList不起作用

问题描述 投票:0回答:1

我正在尝试将新创建的实例添加到 ArrayList 中,以便可以打印出所有成员。我尝试了下面找到的解决方案..

自动添加构造成ArrayList的每个Class对象

但是,我在下面遇到了错误.. “ArrayList 类型中的 add(Integer) 方法不适用于参数 (Bike)”

这是代码。有任何想法吗?对 Java 还很陌生,所以请原谅我的基本问题。任何帮助都很棒,谢谢。

import java.util.ArrayList;


public class Bike {
    
    private int cadence;
    private int gear;
    private int speed;
    private int id;
    private static int numberOfBicycles = 0;
    public static ArrayList<Integer> bikeIds = new ArrayList<Integer>();
        
    public Bike(int startCadence, int startSpeed, int startGear){
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;

        // increment number of Bicycles
        // and assign ID number
        id = ++numberOfBicycles;
        bikeIds.add(this);
    }

我尝试了 IDE 中的建议,但没有成功。

arraylist
1个回答
1
投票

这段代码有两个方面的问题:

  1. public static ArrayList<Integer> bikeIds = new ArrayList<Integer>();
    
  2. bikeIds.add(this);
    

ArrayList
的类型是
Integer
,但您将
this
放入
add
方法中。
this
的类型是
Bike
。 所以,它们的类型不一样。

© www.soinside.com 2019 - 2024. All rights reserved.