0

BigDecimal 値を文字列に変換する必要があります。私は次のようにしました:

    @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:11,046 警告 [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()に変換BigDecimalされることを知っていStringます。コンパイル時例外は発生しませんが、実行時例外は発生します。洞察はありますか?

4

1 に答える 1

0

OK..次に、次のようにコードを変更します。

caseId = ((CsValidateReport)vList.get(i)).getCaseId();
そして、この行の代わりに:

String caseId = "";String sCaseId = "";次に、次のように進めることができます。

caseId = ((CsValidateReport)vList.get(i)).getCaseId();
sCaseId = caseId.toPlainString() ;
dataCell.setCellValue(sCaseId );
于 2013-03-11T19:47:03.640 に答える