2016-08-31 5 views
-3

Javaアプリケーションへ私は次の問題があります。このDateオブジェクトをコンストラクタに渡すと、なぜこのIllegalArgumentExceptionが発生しますか?

public class TirAliquotaRamoI { 

    private Date dataElaborazione; 
    private BigDecimal tassoLordoAnnuoAppl; 
    private BigDecimal tassoGiornalieroNetto; 
    private BigDecimal aliquota;    // Rappresenta il NAV 
    private Date dataInizio; 
    private Date dataFine; 
    private Date timeStamp; 

    public TirAliquotaRamoI() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 



    public TirAliquotaRamoI(Date dataElaborazione, BigDecimal tassoLordoAnnuoAppl, 
          BigDecimal tassoGiornalieroNetto, BigDecimal aliquota, 
          Date dataInizio, Date dataFine) { 
     super(); 
     this.dataElaborazione = dataElaborazione; 
     this.tassoLordoAnnuoAppl = tassoLordoAnnuoAppl; 
     this.tassoGiornalieroNetto = tassoGiornalieroNetto; 
     this.aliquota = aliquota; 
     this.dataInizio = dataInizio; 
     this.dataFine = dataFine; 
    } 

    ..................................................................... 
    ..................................................................... 
    GETTERS AND SETTERS 
    ..................................................................... 
    ..................................................................... 
} 

フィールドがあるjava.utils.Date

が、私はこのクラスを持っています。

はその後、別のクラスに私は、このようにTirAliquotaRamoIオブジェクトを作成しています:

TirAliquotaRamoI expectedResult = new TirAliquotaRamoI(
            new Date("2015-11-17 00:00:00"), 
            new BigDecimal("3.120000000"), 
            new BigDecimal("0.000049863"), 
            new BigDecimal("1.0000498630"), 
            new Date("2015-11-17 00:00:00"), 
            new Date("2015-11-17 00:00:00")); 

(私が知っている日(「2015年11月17日午後12時00分○○秒」)コンストラクタこれは非推奨ですが、これは単体テスト方法にすぎません)。

java.lang.IllegalArgumentException 
    at java.util.Date.parse(Date.java:598) 
    at java.util.Date.<init>(Date.java:255) 
    at com.mycompany.main.AppTest.getNavInfoTest(AppTest.java:445) 
    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:597) 
    at junit.framework.TestCase.runTest(TestCase.java:154) 
    at junit.framework.TestCase.runBare(TestCase.java:127) 
    at junit.framework.TestResult$1.protect(TestResult.java:106) 
    at junit.framework.TestResult.runProtected(TestResult.java:124) 
    at junit.framework.TestResult.run(TestResult.java:109) 
    at junit.framework.TestCase.run(TestCase.java:118) 
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:131) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 

理由:それはEclipseのスタックトレースに私に次の例外を与える

new Date("2015-11-17 00:00:00") 

問題があること、それが実行されたときでしょうか?なにが問題ですか?私は何が欠けていますか?この問題を解決するにはどうすればよいですか?

+0

あなたのテストクラスにも 'java.util.Date'をインポートしていますか? – Adam

+0

@AdamRosini:明らかに彼らはスタックトレースの2行目を見ました。 –

+0

@ T.J.Crowder私は人々がmix and matchのコードを見て、可能だと思う以上に出力しました – Adam

答えて

-1

あなたはそのコンストラクタを使用しないでください。

不適切な日付形式を使用しています。正しい文字列の例"Sat, 12 Aug 1995 13:30:00 GMT+0430"。詳細はJavaDoc Date.parse(String)

関連する問題