diff --git a/src/org/redkale/convert/ConvertFactory.java b/src/org/redkale/convert/ConvertFactory.java index dd3034078..3800c2267 100644 --- a/src/org/redkale/convert/ConvertFactory.java +++ b/src/org/redkale/convert/ConvertFactory.java @@ -7,7 +7,7 @@ package org.redkale.convert; import java.io.File; import java.lang.reflect.*; -import java.math.BigInteger; +import java.math.*; import java.net.*; import java.nio.ByteBuffer; import java.nio.channels.CompletionHandler; @@ -89,6 +89,7 @@ public abstract class ConvertFactory { this.register(CharSequence.class, CharSequenceSimpledCoder.instance); this.register(java.util.Date.class, DateSimpledCoder.instance); this.register(BigInteger.class, BigIntegerSimpledCoder.instance); + this.register(BigDecimal.class, BigDecimalSimpledCoder.instance); this.register(InetAddress.class, InetAddressSimpledCoder.instance); this.register(DLong.class, DLongSimpledCoder.instance); this.register(Class.class, TypeSimpledCoder.instance); diff --git a/src/org/redkale/convert/ext/BigDecimalSimpledCoder.java b/src/org/redkale/convert/ext/BigDecimalSimpledCoder.java new file mode 100644 index 000000000..07aa95aa7 --- /dev/null +++ b/src/org/redkale/convert/ext/BigDecimalSimpledCoder.java @@ -0,0 +1,44 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.redkale.convert.ext; + +import org.redkale.convert.SimpledCoder; +import org.redkale.convert.Writer; +import org.redkale.convert.Reader; +import java.math.BigDecimal; +import org.redkale.util.Utility; + +/** + * BigDecimal 的SimpledCoder实现 + * + *

+ * 详情见: https://redkale.org + * + * @author zhangjx + * @param Reader输入的子类型 + * @param Writer输出的子类型 + */ +public final class BigDecimalSimpledCoder extends SimpledCoder { + + public static final BigDecimalSimpledCoder instance = new BigDecimalSimpledCoder(); + + @Override + public void convertTo(W out, BigDecimal value) { + if (value == null) { + out.writeNull(); + return; + } + out.writeSmallString(value.toString()); + } + + @Override + public BigDecimal convertFrom(R in) { + String value = in.readSmallString(); + if (value == null) return null; + return new BigDecimal(Utility.charArray(value)); + } + +}