让类getChoice实现一个LinkedHashMap。
让方法addCh实现choice.put。
让一些类choice1和choice2将类选择和传递元素扩展到getChoice.map。每次将对象传递给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提到每次调用都会创建该地图后,我通过将地图声明为静态来处理它。
非常感谢。
最佳答案
choice
映射是GetChoice
对象的实例字段。每次创建新的GetChoice
时,都会创建一个没有数据的全新地图。
为了在addChoice
调用之间将数据持久化在映射中,您需要创建一次GetChoice
对象,然后在同一对象上多次调用addChoice
。