Classcastexception-Fehler: java.lang.Double nicht kompatibel mit java.math.BigDecimal

Diese Ausnahme kommt in sehr seltsame Weise.

Lese ich den Wert einer variable aus einer gespeicherten Prozedur, deren Typ DECIMAL(15,4).
Und bei java-Ende war ich Typumwandlung dieser Wert zu BigDecimal, und es funktionierte perfekt in Ordnung.
Nun begann ich immer diese exception :java.lang.Classcastexception-Fehler: java.lang.Double nicht kompatibel mit java.math.BigDecimal und diese zu lösen bin ich casting diese variable Art zu Doppel - und dann Gießen Sie es zurück an BigDecimal mit

Neu :

Double myVarDb= //reading some variable's value with type-> DECIMAL(15,4) from Db end
 BigDecimal myVar = (BigDecimal)BigDecimal.valueOf(myVarDb);

Alt :

 BigDecimal  myVar= //reading some variable's value with type-> DECIMAL(15,4) 

Wenn in den Fall, jemand hat sich dieses Problem oder hat eine Idee warum es kommen könnte, bitte guide.

UPDATE : ich habe beide Treiber und unten sind die Versionen :

Alt : DriverVersion: 3.6.60

NEU : DriverVersion: 3.64.106

Den Instanzen, die ich bin immer erstellt nach dem Auslesen der Werte sind vom Typ:

Alt : BigDecimal

NEU : Doppel -

So das problem ist jetzt klar, warum machen wir diese Ausnahme, weil wir immer Doppelt Objekt nun als Standard-Objekt.

So jemand kann werfen etwas Licht auf, warum diese verschiedenen Arten von Instanzen werden immer erstellt?
Ist dies wegen der verschiedenen Versionen des JDBC-Treibers?

  • Um vollständig zu beantworten Ihre Fragen, brauchen wir wirklich zu sehen (so etwas wie) den code auf der anderen Seite diejenigen, die = Betreiber.
InformationsquelleAutor Onki | 2015-07-29
Schreibe einen Kommentar