我有一个填充了JTable
的各种数据。现在我尝试将其转换为String
,但在我的数据库中,它们可以是null
值,所以当我调用此行时:
String s = model.getValueAt(i,j).toString();
我得到一个异常,因为它试图将空值转换为字符串吗?
如何让它发挥作用?
答案 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();
}