【问题标题】:How to use Arraylist over different classes如何在不同的类上使用 Arraylist
【发布时间】:2015-02-02 20:20:18
【问题描述】:

我试图将在另一个类中创建的狗 (nyHund) 添加到我使用另一个类中的构造函数创建的 Arraylist 中,但是每当我尝试在“注册”类中使用 Arraylist 时,我都会得到无法解析arraylist名称的错误。

头等舱:

    public class Hund {

    private String namn;
    private int ålder;
    private double vikt;
    private String ras;

    public Hund(String hundnamn, int hundålder, String hundras, double hundvikt) {
        this.namn = hundnamn;
        this.ålder = hundålder;
        this.ras = hundras;
        this.vikt = hundvikt;
    }

    public String getNamn() {
        return namn;
    }

    public int getÅlder() {
        return ålder;
    }

    public double getSvanslängd() {
        if (ras=="tax"){
            return 3.7;
        }else{
            return ((vikt*ålder)/10);
        }
    }

    public String toString() {
        return namn + "\n" + ålder + "\n"+ras+"\n"+vikt+"\n"+getSvanslängd();
    }
}

二等

    import java.util.ArrayList;
public class testning {

    public static void main(String[] args) {
        Hund nyHund = new Hund("Daisy", 13, "labrador", 22.3);
        System.out.println(nyHund.toString());
        Register.läggTillHund(nyHund);



    }

}

第三类:

import java.util.ArrayList;

public class Register {



    public static void läggTillHund(Hund nyHund){
        hundRegister.add(nyHund);
        System.out.println(nyHund);



    }



    private Register(){
        ArrayList<Hund> hundRegister = new ArrayList<Hund>();
    }


}

我遇到的问题是“hundRegister.add(nyHund)”

有什么想法吗?或我哪里出错的指针? (Java 新手)

最好的问候 奥斯卡

【问题讨论】:

    标签: java oop arraylist


    【解决方案1】:

    您创建的 ArrayList 对于您的 Register 构造函数是本地的。在类内部但在构造函数外部声明它作为实例变量,因此它在整个类的范围内。

    public class Register {
        private ArrayList<Hund> hundRegister;
        private Register(){
            hundRegister = new ArrayList<Hund>();
        }
    }
    

    此外,还不清楚为什么构造函数是private。没有其他东西可以访问该构造函数。我会做到public。

    另外,在getSvanslängd 中,将ras=="tax" 替换为"tax".equals(ras)。见How do I compare strings in Java?。

    【讨论】:

    • 谢谢!那对我来说有点羞耻;)当我看到答案时很明显;)
    • 向我抛出 NullpointerException,但现在没有编译错误。我猜我有更多的故障排除要做 xD
    猜你喜欢
    • 1970-01-01
    • 2016-12-23
    • 2012-05-28
    • 2021-12-03
    • 2016-08-25
    • 2014-11-04
    • 1970-01-01
    • 2018-07-20
    • 2018-10-30
    相关资源
    最近更新 更多