gpt4 book ai didi

java - 存储应用程序的 HashMap [代号一]

转载 作者:行者123 更新时间:2023-11-30 06:46:15 25 4
gpt4 key购买 nike

我已经尝试解决这个问题一两周了,但无法做到。

我有两个类,MyApplicationStore。这只是一个测试程序,看看我的存储代码有什么问题。

这是MyApplication

public class MyApplication {
private Form current;
private Resources theme;
private Store o;

public void init(Object context) {
theme = UIManager.initFirstTheme("/theme");
Util.register("Store", Store.class);
Toolbar.setGlobalToolbar(true);
}

public void start() {
if(current != null){
current.show();
return;
}

Form hi = new Form("Hi World");

TextField enter = new TextField("","Enter Here", 20, TextField.ANY);
Button add = new Button("Add");

add.addActionListener((ev)->
o.add(enter.getText() + "", 100)); /*Failing here*/

hi.add(enter).add(add);

hi.show();

}

private void save()
{
Storage.getInstance().writeObject("NameOfFile", o);
}

private void load()
{
o = (Store) Storage.getInstance().readObject("NameOfFile");
}

public void stop() {
current = Display.getInstance().getCurrent();
if(current instanceof Dialog) {
((Dialog)current).dispose();
current = Display.getInstance().getCurrent();
}
}
public void destroy() {
}

}

这是Store

public class Store implements Externalizable {    
private static final int VERSION = 1;
HashMap<String, Integer> data;

public void externalize(DataOutputStream out) throws IOException
{
Util.writeObject(data, out);
}
public void internalize(int version, DataInputStream in) throws IOException
{
data = (HashMap<String, Integer>)Util.readObject(in);
}
public void add(String s, Integer i)
{
data.put(s, i);
}
public int getVersion()
{
return VERSION;
}
public String getObjectId()
{
return "Store";
}
}

我之前在 MyApplication 类中使用了 HashMap 指针,但在同一位置失败了。

最佳答案

您发布的代码似乎没有在任何地方初始化data HashMap。您没有调用 load() 方法,并且实际上没有在任何地方创建 Hashmap。因此,您突出显示的行可能会因 NPE 而失败。

将来,您应该包含更多信息,而不仅仅是“此处失败”。如果有堆栈跟踪,请始终提供它。如果没有堆栈跟踪,那么您需要描述如何知道它在那里失败。

关于java - 存储应用程序的 HashMap [代号一],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43644105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com