Java 自定义列表与上次添加的元素重复

Java 自定义列表与上次添加的元素重复,java,Java,我制作了一个自定义列表,并在列表中添加了两个元素。 当我试图显示这两个元素时,它只显示最后添加的元素两次。我是一个java初学者,我似乎无法找到为什么我的列表只包含最后添加的重复项 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Home { public static void main(String[] args)

我制作了一个自定义列表,并在列表中添加了两个元素。 当我试图显示这两个元素时,它只显示最后添加的元素两次。我是一个java初学者,我似乎无法找到为什么我的列表只包含最后添加的重复项

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Home {

public static void main(String[] args) {
    int length = 2;
    String[] machineName = { "BMW", "AUDI" };

    for (int i=0; i<length; i++){
        setMachineDetails(machineName[i]);
        System.out.println("Machine Details No. : " + i + " SET");
    }

    System.out.println("\n\nDisplaying List contents\n\n");

    System.out.println("Size of List : " + MachineDetails_List.serverData.size() + "\n\n");

    for (MachineDetails model : MachineDetails_List.serverData){
        System.out.println("MachineDetails Name : " + model.getMachineName());
    }
}

private static void setMachineDetails(String name) {

    MachineDetails md = new MachineDetails();
    md.setMachineName(name);
    MachineDetails_List.serverData.add(md);
    System.out.println("Machine Name : " + name + " SET");
 }
}

class MachineDetails {
    public static String MACHINE_NAME;

    public static String getMachineName() {
        return MACHINE_NAME;
    }

    public static void setMachineName(String machineName) {
        MACHINE_NAME = machineName;
     }
}

class MachineDetails_List {

    public static List<MachineDetails> serverData = new ArrayList<MachineDetails>();

    public static List<MachineDetails> getServerData() {
        return serverData;
    }

    public static void setServerData(List<MachineDetails> serverData) {
    MachineDetails_List.serverData = serverData;
    }
}
import java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
公屋{
公共静态void main(字符串[]args){
整数长度=2;
字符串[]machineName={“BMW”,“AUDI”};

对于(int i=0;i而言,
MACHINE\u NAME
不需要是
static
。由于该字段是静态的,因此所有
machinedtails
对象的
MACHINE\u NAME
将具有相同的值

machinedeails
类中删除
static
关键字:

class MachineDetails {

    public String MACHINE_NAME;

    public String getMachineName() {
        return MACHINE_NAME;
    }

    public void setMachineName(String machineName) {
        MACHINE_NAME = machineName;
    }
}
您应该将列表、变量设置为非静态。
public List serverData=new ArrayList();
类机器细节{
公共字符串机器名称;
公共字符串getMachineName(){
返回机器名称;
}
公共void setMachineName(字符串machineName){
机器名称=机器名称;
}
}

你真是个天才
You should make list,variable to be non static.

public List<MachineDetails> serverData = new ArrayList<MachineDetails>();

class MachineDetails {

    public String MACHINE_NAME;

    public String getMachineName() {
        return MACHINE_NAME;
    }

    public void setMachineName(String machineName) {
        MACHINE_NAME = machineName;
    }
}