简体   繁体   English

如何添加到类类型的数组列表

[英]How to add to an arraylist of class type

Ok so this is what I have 好,这就是我所拥有的

public class Register {

    public String propertyID;
    public String PPSNumber;

    Register(String aPropertyID, String aPPSNumber) {
        propertyID = aPropertyID;
        PPSNumber = aPPSNumber;
    }

    public void setPPSNumber(String aPPSNumber) {
        PPSNumber = aPPSNumber;
    }

    public String getPPSNumber() {
        return PPSNumber;
    }

    public String getPropertyID() {
        return propertyID;
    }
}

Then I have this 那我有这个

public static ArrayList<Register> registers = new ArrayList<Register>();

public static void main(String[] args) {

    String userInput1 = "", userInput2 = "", userInput3 = "";
    userInput1 = JOptionPane.showInputDialog("Enter your PPSNumber");
    userInput2 = JOptionPane.showInputDialog("Enter your propID");

    registers.add("number", "id");
}

I don't understand why It wont let me add to the ArrayList. 我不明白为什么它不会让我添加到ArrayList中。 Is there some way of adding class types to ArrayLists? 有什么方法可以将类类型添加到ArrayLists吗?

Try this instead : 试试这个代替:

registers.add(new Register("number","id"));

EDIT 1: To answer your question, you can create a separate "register" and the use the getters : 编辑1:要回答您的问题,您可以创建一个单独的“寄存器”并使用getters:

Register aRegister = new Register("number","id");
registers.add(aRegister);
System.out.println(aRegister.getPropertyID()+" "+ aRegister.getPPSNumber());

Your List is of type Register so you need to add object of Register class only. 您的List的类型为Register因此您只需要添加Register类的对象。

Nothing wrong in create as many Register objects as required. 创建所需数量的Register对象没有问题。

You can implement toString() method inside Register class then the below sysout will work given the register variable is initialized with Register object. 您可以在Register类中实现toString()方法,然后在使用Register对象初始化了register变量的情况下,以下sysout将起作用。 Check this How to override toString() properly in Java? 选中此方法如何在Java中正确覆盖toString()? to know about toString implementation. 了解toString的实现。

System.out.println(register)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM