2013-03-11 4 views
0

Мне нужно преобразовать значение BigDecimal в строку. Я сделал следующим образом:BigDecimal to String в Java

@Column(name="CASE_ID", precision=22, scale=0) 
public BigDecimal getCaseId() { 
    return this.caseId; 
} 

public void setCaseId(BigDecimal caseId) { 
    this.caseId = caseId; 
} String caseId = ""; 

caseId = vList.get(i).getCaseId().toString(); 
dataCell.setCellValue(caseId); 

я получаю исключение во время выполнения, как показано ниже:

2013-03-11 14: 49: 11046 WARN [HTTPThreadGroup-4] org.apache.struts. action.RequestProcessor: Необработанное исключение брошено: учащемуся java.lang.ClassCastException

завернуты исключение:

java.lang.ClassCastException: [Ljava.lang.Object; 
    at com.report.getExport(ExportToExcelAction.java:468) 
    at com.report.getExport.view(ExportToExcelAction.java:134) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280) 
    at gov.pbgc.spectrum.util.SpectrumLookupDispatchAction.execute(SpectrumLookupDispatchAction.java:119) 
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) 
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) 

Я знаю toString() конвертирует в String. Я не получаю исключение во время компиляции, но я получаю исключение во время выполнения. Какие-нибудь идеи?

+2

Пока еще недостаточно информации. Мы не знаем, что возвращает 'getCaseId()' (предположительно BigDecimal). – Makoto

+0

vList.get (i) .getCaseId() не возвращает то, что вы ожидали. (Большое десятичное число) – PSR

+0

В фрагменте кода нет заливки, добавьте stacktrace к вашему вопросу. –

ответ

0

OK..Then изменить код следующим образом:

caseId = ((CsValidateReport)vList.get(i)).getCaseId();
И вместо этой строки:

String caseId = ""; использования String sCaseId = ""; И тогда вы можете выполнить следующие действия:

caseId = ((CsValidateReport)vList.get(i)).getCaseId(); 
sCaseId = caseId.toPlainString() ; 
dataCell.setCellValue(sCaseId); 
+0

nope im получает ту же ошибку. – JNPW

+0

'com.report.getExport (ExportToExcelAction.java:468)'. Вы проверили код, написанный на этой строке? Что написано в строке 468 «ExportToExcelAction.java»? –

+0

caseId = ((CsValidateReport) vList.get (i)). GetCaseId(). ToString(); – JNPW