让类getChoice实现LinkedHashMap。 让方法addCh实现choice.put。 让一些类choice1和choice2扩展类选择并将元素传递给getChoice.map。每次我将一个对象传递给Map时,似乎都不会更新,而是要使用相同的名称再次创建。我需要先将所有元素存储在地图中,然后将它们保存到文件中。我怎样才能做到这一点?我的代码到目前为止。
public class GetChoice{
Map<String, String> choice = new LinkedHashMap<String, String>();
public void addChoice(SomeClass obj1, SomeOtherClass obj2) {
if (obj2 instanceof Choice1) {
this.choice.put(obj2.toString(), "choice1");
} else if (obj2 instanceof Choice2) {
this.choice.put(obj2.toString(), "choice2");
} else {
//sysout not found
}
System.out.println("\n" + choice);
}
编辑:我通过将地图声明为静态来处理它,之后@dasblinkenlight提到每次调用都会创建它。 非常感谢你们。
答案 0 :(得分:1)
似乎不会更新,而是要使用相同的名称再次创建
确保您的参数被交叉,因此您使用的是Key obj2
例如: 这样做:
addChoice(1, 11);
addChoice(2, 3.14);
addChoice(3, 45);
addChoice(1111, 45);
addChoice(111111, 45);
addChoice(1234, 45);
将在列表中生成 3个元素 ... 11,pi和45,无论多少 您使用的 obj1 不同类型..
答案 1 :(得分:1)
choice
map是GetChoice
对象的实例字段。每次创建新GetChoice
时,都会创建一个没有数据的全新地图。
为了在addChoice
的调用中保留地图中的数据,您需要创建一次GetChoice
对象,然后多次在同一个对象上调用addChoice
。