我试图从HBase表中检索Long值。但它在重新审视特殊列族时会给出NullPointerException。
示例代码段:
long total_size=0;
total_size +=Bytes.toLong(rr.getValue(Bytes.toBytes("size"),Bytes.toBytes("size"))));
我已经存储了大小的值。一些大小的值是null。我想要检索空值并将它们分配给“0”ZERO。
请给我相应的代码段。
感谢。
答案 0 :(得分:0)
这是因为Bytes.toLong()
方法不会检查检索到的byte[]
是否为null
并调用其byte[].length
,这会抛出您的异常。您可以尝试以下解决方法:
String longValue = Bytes.toString(rr.getValue(Bytes.toBytes("size"),Bytes.toBytes("size")));
total_size += (longValue != null ? Bytes.toLong(rr.getValue(Bytes.toBytes("size"),Bytes.toBytes("size")):0l);
或
try{
total_size +=Bytes.toLong(rr.getValue(Bytes.toBytes("size"),Bytes.toBytes("size"))));
}catch(NullPointerException e){
// no need to increment total_size by 0
}