我收到如下错误:
线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException at recipes.presenter.InsertPresenter.insertNewEntry(InsertPresenter.java:33) at recipes.view.InsertView.jButton1ActionPerformed(InsertView.java:229) at recipes.view.InsertView.access $ 000(InsertView.java:14) at recipes.view.InsertView $ 1.actionPerformed(InsertView.java:124)
InsertPresenter
文件中的代码如下:
package recipes.presenter;
import javax.swing.JOptionPane;
import recipes.model.*;
import recipes.view.*;
public class InsertPresenter {
private IInsertView iInsertView;
InsertView iv;
IRecipeQuery query;
public InsertPresenter() {
iInsertView = null;
iv = new InsertView();
}
public void bind(IInsertView iv) {
iInsertView = iv;
}
public void insertNewEntry() {
int result = 0;
result = query.addRecipe(iv.getNameField(),iv.getCategoryField(),iv.getMainIngField(),
iv.getPrepTimeField(),iv.getCookTimeField());
if (result == 1) {
JOptionPane.showMessageDialog(null, "Recipe added!");
} else {
JOptionPane.showMessageDialog(null, "Recipe not added!");
}
}
}
删除iInsertView = null
也没有用。我在这里搜索了多个答案,但是他们大多要求不要将变量初始化为对象为null,我也试过没有运气。
有人可以帮忙吗,我在这里做错了什么?
更新
我尝试了以下方式以便在没有任何运气的情况下初始化'查询'。
package recipes.presenter;
import java.util.Objects;
import javax.swing.JOptionPane;
import recipes.model.*;
import recipes.view.*;
public class InsertPresenter {
IInsertView view;
IRecipeQuery queries;
InsertPresenter(IInsertView iiv, IRecipeQuery iqv) {
view = iiv;
queries = iqv;
}
public InsertPresenter() {
}
public void bind(IInsertView iv) {
view = iv;
}
public void insertNewEntry() {
int result = 0;
result = queries.addRecipe(view.getNameField(), view.getCategoryField(), view.getMainIngField(),
view.getPrepTimeField(), view.getCookTimeField());
if (result == 1) {
JOptionPane.showMessageDialog(null, "Recipe added!");
} else {
JOptionPane.showMessageDialog(null, "Recipe not added!");
}
}
}
请帮忙!
答案 0 :(得分:0)
query
永远不会被初始化。你必须初始化它。