如何将数据库中可以为null的条目转换为String?

时间:2015-01-21 15:32:11

标签: java swing nullpointerexception jtable

我有一个填充了JTable的各种数据。现在我尝试将其转换为String,但在我的数据库中,它们可以是null值,所以当我调用此行时:

String s = model.getValueAt(i,j).toString();

我得到一个异常,因为它试图将空值转换为字符串吗?

如何让它发挥作用?

2 个答案:

答案 0 :(得分:1)

您收到NullPointerException,因为当您从数据存储中检索信息时,不会检查它是否为null。因此,当您致电model.getValueAt(i,j)时,这很可能会在某个时刻返回null值。您不对此进行检查,因此您在toString()值(null)上调用了null.toString(),这会导致您的代码崩溃NullPointerException。我建议您使用turnary运算符。这将首先检查返回的值是否为null,然后创建String s,具体取决于它是否为null

String s = ((model.getValueAt(i,j) == null) ? null : model.getValueAt(i,j).toString());

如果记录为String,则会将null设置为null,否则将其设置为记录的值。或者,如果您希望在记录不存在时将其设为空String""),则可以使用:

String s = ((model.getValueAt(i,j) == null) ? "" : model.getValueAt(i,j).toString());

答案 1 :(得分:0)

Object cellObj = model.getValueAt(i,j);
String s;
if (cellObj == null) {
    s = null;
} else {
    s = cellObj.toString();
}