【问题标题】:Java object its not saving its atribute values [duplicate]Java对象不保存其属性值[重复]
【发布时间】:2018-12-11 18:57:38
【问题描述】:

下午好。

我有一个 City 类,它接收到其他 City 对象的不同距离值。

但是,在我创建城市并添加距离后,每个城市都会获得相同的距离值,这是最后一个添加的城市的值。

也就是说,运行之后 cityA.toString 的输出应该是 {B=5, C=4, D=7, E=6, F=5, G=7, H=4, I=2, J=9} 而不是 {A=6, B=5, C=5, D=6, E=4, F=8, G=5, H=4, I=3, J=8}

你知道我做错了什么吗?谢谢

public class City {

private String name;
private static HashMap<String, Integer> distancias;

public City(String name){
    this.name = name;
    distancias = new HashMap<String, Integer>();
}

public void insertDistances(City city, int dist) {
    distancias.put(city.getName(), dist);
}


public static void main(String[] args) {

    City cityA = new City("A");
    City cityB = new City("B");
    City cityC = new City("C");
    City cityD = new City("D");
    City cityE = new City("E");
    City cityF = new City("F");
    City cityG = new City("G");
    City cityH = new City("H");
    City cityI = new City("I");
    City cityJ = new City("J");

    cityA.insertDistances(cityB, 5);
    cityA.insertDistances(cityC, 4);
    cityA.insertDistances(cityD, 7);
    cityA.insertDistances(cityE, 6);
    cityA.insertDistances(cityF, 5);
    cityA.insertDistances(cityG, 7);
    cityA.insertDistances(cityH, 4);
    cityA.insertDistances(cityI, 2);
    cityA.insertDistances(cityJ, 9);

    cityB.insertDistances(cityA, 6);
    cityB.insertDistances(cityC, 5);
    cityB.insertDistances(cityD, 6);
    cityB.insertDistances(cityE, 4);
    cityB.insertDistances(cityF, 8);
    cityB.insertDistances(cityG, 5);
    cityB.insertDistances(cityH, 4);
    cityB.insertDistances(cityI, 3);
    cityB.insertDistances(cityJ, 8);

}

}

【问题讨论】:

  • distancias中移除static修饰符
  • 你的toString方法在哪里?
  • 是的,因为 private static HashMap&lt;String, Integer&gt; distancias; 是静态的

标签: java dictionary object


【解决方案1】:
private static HashMap<String, Integer> distancias;

去除静电 改用private HashMap&lt;String, Integer&gt; distancias`

静态变量对于类的所有实例(或对象)是通用的,因为它是类级别的变量。

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2021-12-04
    相关资源
    最近更新 更多