让类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

10-04 12:48