我是vaadin(和java)的新手。
我有一个像这样的SQL容器的表:
public class ProjectTable extends Table {
public ProjectTable(final DocumentmanagerApplication app) {
setSizeFull();
setContainerDataSource(app.getDbHelp().getProjectContainer());
setImmediate(true);
commit();
setSelectable(true);
}
}
我有一个按钮和一个TextField,用于填充表格中的数据
public void buttonClick(ClickEvent event)
{
SQLContainer cont = h.getAssetContainer();
String dataResult = tf.getValue().toString(); // TEXT FIELD
System.out.println(dataResult);
Object itemId = cont.addItem(); // cont is the container
**cont.getContainerProperty(itemId , "id").setValue(dataResult); // BUG IS HERE !!! **
try {
cont.commit();
} catch (UnsupportedOperationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
无论我做什么,我都会收到“空指针异常”。在行** cont.getContainerProperty(itemId,“id”)。setValue(dataResult);
我做错了什么?什么是空指针?如果有任何不清楚的地方,请通知我。
请提前帮助,谢谢。
答案 0 :(得分:4)
答案 1 :(得分:2)
此表达式返回null
:
cont.getContainerProperty(itemId , "id")
然后您尝试在null
上调用方法。这会导致NullPointerException
。所以看一下,为什么容器在您调用它时不为键提供非空值。