Java Map 中的对象无法访问属性

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

我制作了一些对象,并将它们放入 Map 对中。 当我迭代地图时,我无法访问对象的任何属性,它们显示为空,但对象存在并且可以通过

确认
inventory2.containsValue(objName);

public class Obj {

    public String name;
    public int quantity;

    public Obj(String name, int quantity) {
        name = this.name;
        quantity = this.quantity;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    @Override
    public String toString() {
        return "obj [name=" + name + ", quantity="
                + quantity + "]";
    }
public static void mapReview() {

    Map<Integer, Obj> inventory2 = new HashMap<>();
    Obj greenHerb = new Obj("Green Herb",2);
    Obj redHerb = new Obj("Red Herb", 4);

    for(int k = 0; k < inventory2.size(); k++) {
        System.out.println("Key is: " + k + " and name is: " + inventory2.get(k).getName() + " and quantity is: " + inventory2.get(k).getQuantity());
    }
}
java maps
1个回答
0
投票

你的构造函数赋值是错误的,它们应该是相反的。

代替:

name = this.name;
quantity = this.quantity;

应该是:

this.name = name;
this.quantity = quantity;
© www.soinside.com 2019 - 2024. All rights reserved.