2016-03-04 7 views
0

Каков наилучший способ преобразования объекта, который я получаю из базы данных в String в Java? Например, у меня есть поле, которое возвращает BigDecimal. Как преобразовать его в String, сохраняя его как null (примитивный), если он возвращается null? Я использовал String.valueOf (obj), но это фактически преобразует его в строковое представление «null».Преобразование объекта в строку в java

ответ

2

Как вы заметили, что вы получите строку "null" вместо фактического значения нуль. This is by design:

Возвращает:
, если аргумент имеет нулевое значение, то строка равна "нулю"; в противном случае возвращается значение obj.toString().

Это сказал, вы могли бы просто проверить, если это нулевой до его преобразования:

import java.math.BigDecimal; 

class Main 
{ 
    public static void main (String[] args) 
    { 
     BigDecimal foo = new BigDecimal(1.0); 
     BigDecimal bar = null; 

     // if the value isn't NULL, use String.valueOf, else use NULL 
     String fooString = foo != null ? String.valueOf(foo) : null; 
     String barString = bar != null ? String.valueOf(bar) : null; 

     System.out.println(fooString == null ? "REALNULL" : "\"" + fooString + "\""); 
     System.out.println(barString == null ? "REALNULL" : "\"" + barString + "\""); 
    } 
} 

Выход:

"1" 
REALNULL 

DEMO

+0

спасибо, я сделал именно это. Казалось, что слишком долго писать поначалу, но нормально –

+1

@ TiberiuDorianMoşescu Добро пожаловать. Если это раздражает, продолжайте писать, просто создайте свой собственный класс util и используйте 'StringUtils.valueOfNull (foo)'. – h2ooooooo

0

Это то, что вы можете сделать для преобразования этих значений в строковые значения.

decimal dValue = 59.24; 
String sValue = dValue+""; 
0

Я думаю, что отливку объекта к Строка или действительно использование String.valueOf(obj) будет работать, но просто выполните проверьте, нет ли значения, например:

if(obj == null) { 
    //Do something 
} 
else { 
    String s = (String) obj; 
} 
+0

casting будет бросать исключение классаCastException или sth –

Смежные вопросы