Java构造函数

new*_*bie 1 java constructor struts2

美好的一天!

我创建了重载构造函数如下:

public ContactsBean(String firstName, String lastName,
                String telNumber, String email) {
    this.id = count;
    count = count + 1;
    this.firstName = firstName;
    this.lastName = lastName;
    this.email = email;
    this.telNumber = telNumber;
}

public ContactsBean() {
    this.id = count;
    count = count + 1;
}
Run Code Online (Sandbox Code Playgroud)

我想自动增加id所以我使用了这个变量:

    private static int count;   
    private int id;
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我实例化时ContactsBean() contacts = new ContactsBean(),id的值增加2 .. 2,4,6,8 ...等.

为什么?如何将ID增量的自动编号设为1?

谢谢.

编辑:

行动:

private ContactsBean contacts = new ContactsBean();
private ContactsManager contactsManager = new ContactsManager();

    public String add() {
        contactsManager.addContacts(contacts);
        return SUCCESS;
    }
Run Code Online (Sandbox Code Playgroud)

经理:

private ContactsDAO contactsDAO = ContactsDAO.getInstance();
private List<ContactsBean> contactsList = contactsDAO.getContactsList(); 

public void addContacts(ContactsBean contact) {
    contactsList.add(contact);
}
Run Code Online (Sandbox Code Playgroud)

Op *_*kel 5

首先,DRY(不要重复自己)会更好:

    public ContactsBean(String firstName, String lastName,
                String telNumber, String email){
    this();
    this.firstName = firstName;
    this.lastName = lastName;
    this.email = email;
    this.telNumber = telNumber;
}
Run Code Online (Sandbox Code Playgroud)

其次,代码中没有两个增量.请粘贴您的测试代码.