diff --git a/src/main/java/org/redkale/convert/AnyValueDecoder.java b/src/main/java/org/redkale/convert/AnyValueDecoder.java
deleted file mode 100644
index 1f4cbd2fa..000000000
--- a/src/main/java/org/redkale/convert/AnyValueDecoder.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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;
-
-import java.lang.reflect.Type;
-import org.redkale.util.AnyValue;
-
-/**
- * AnyValue的Decoder实现
- *
- *
详情见: https://redkale.org
- *
- * @author zhangjx
- * @param Reader输入的子类型
- * @since 2.5.0
- */
-public class AnyValueDecoder implements Decodeable {
-
- protected final ConvertFactory factory;
-
- public AnyValueDecoder(final ConvertFactory factory) {
- this.factory = factory;
- }
-
- @Override
- public AnyValue convertFrom(R in) {
- return null;
- }
-
- @Override
- public Type getType() {
- return AnyValue.class;
- }
-}
diff --git a/src/main/java/org/redkale/convert/AnyValueEncoder.java b/src/main/java/org/redkale/convert/AnyValueEncoder.java
deleted file mode 100644
index 97eaccd9b..000000000
--- a/src/main/java/org/redkale/convert/AnyValueEncoder.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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;
-
-import java.lang.reflect.Type;
-import org.redkale.util.AnyValue;
-
-/**
- * AnyValue的Encoder实现
- *
- * 详情见: https://redkale.org
- *
- * @author zhangjx
- * @param Writer输出的子类
- * @since 2.5.0
- */
-public class AnyValueEncoder implements Encodeable {
-
- @Override
- public void convertTo(W out, AnyValue value) {
- // do nothing
- }
-
- @Override
- public Type getType() {
- return AnyValue.class;
- }
-}
diff --git a/src/main/java/org/redkale/convert/ConvertFactory.java b/src/main/java/org/redkale/convert/ConvertFactory.java
index ddc075ff9..eea11b908 100644
--- a/src/main/java/org/redkale/convert/ConvertFactory.java
+++ b/src/main/java/org/redkale/convert/ConvertFactory.java
@@ -78,133 +78,150 @@ public abstract class ConvertFactory {
private Consumer fieldFuncConsumer;
+ @SuppressWarnings("OverridableMethodCallInConstructor")
protected ConvertFactory(ConvertFactory parent, int features) {
this.features = features;
this.parent = parent;
if (parent == null) {
- // ---------------------------------------------------------
+ this.initPrimitiveCoderInRoot();
+ this.initSimpleCoderInRoot();
+ this.initObjectCoderInRoot();
+ }
+ }
- this.register(boolean.class, BoolSimpledCoder.instance);
- this.register(Boolean.class, BoolSimpledCoder.instance);
+ protected void initPrimitiveCoderInRoot() {
+ this.register(boolean.class, BoolSimpledCoder.instance);
+ this.register(Boolean.class, BoolSimpledCoder.instance);
- this.register(byte.class, ByteSimpledCoder.instance);
- this.register(Byte.class, ByteSimpledCoder.instance);
+ this.register(byte.class, ByteSimpledCoder.instance);
+ this.register(Byte.class, ByteSimpledCoder.instance);
- this.register(short.class, ShortSimpledCoder.instance);
- this.register(Short.class, ShortSimpledCoder.instance);
+ this.register(short.class, ShortSimpledCoder.instance);
+ this.register(Short.class, ShortSimpledCoder.instance);
- this.register(char.class, CharSimpledCoder.instance);
- this.register(Character.class, CharSimpledCoder.instance);
+ this.register(char.class, CharSimpledCoder.instance);
+ this.register(Character.class, CharSimpledCoder.instance);
- this.register(int.class, IntSimpledCoder.instance);
- this.register(Integer.class, IntSimpledCoder.instance);
+ this.register(int.class, IntSimpledCoder.instance);
+ this.register(Integer.class, IntSimpledCoder.instance);
- this.register(long.class, LongSimpledCoder.instance);
- this.register(Long.class, LongSimpledCoder.instance);
+ this.register(long.class, LongSimpledCoder.instance);
+ this.register(Long.class, LongSimpledCoder.instance);
- this.register(float.class, FloatSimpledCoder.instance);
- this.register(Float.class, FloatSimpledCoder.instance);
+ this.register(float.class, FloatSimpledCoder.instance);
+ this.register(Float.class, FloatSimpledCoder.instance);
- this.register(double.class, DoubleSimpledCoder.instance);
- this.register(Double.class, DoubleSimpledCoder.instance);
+ this.register(double.class, DoubleSimpledCoder.instance);
+ this.register(Double.class, DoubleSimpledCoder.instance);
- this.register(Number.class, NumberSimpledCoder.instance);
- this.register(String.class, StringSimpledCoder.instance);
- this.register(StringWrapper.class, StringWrapperSimpledCoder.instance);
- this.register(CharSequence.class, CharSequenceSimpledCoder.instance);
- this.register(StringBuilder.class, CharSequenceSimpledCoder.StringBuilderSimpledCoder.instance);
- this.register(java.util.Date.class, DateSimpledCoder.instance);
- this.register(java.time.Instant.class, InstantSimpledCoder.instance);
- this.register(java.time.LocalDate.class, LocalDateSimpledCoder.instance);
- this.register(java.time.LocalTime.class, LocalTimeSimpledCoder.instance);
- this.register(java.time.LocalDateTime.class, LocalDateTimeSimpledCoder.instance);
- this.register(java.time.Duration.class, DurationSimpledCoder.instance);
- this.register(AtomicBoolean.class, AtomicBooleanSimpledCoder.instance);
- this.register(AtomicInteger.class, AtomicIntegerSimpledCoder.instance);
- this.register(AtomicLong.class, AtomicLongSimpledCoder.instance);
- this.register(BigInteger.class, BigIntegerSimpledCoder.instance);
- this.register(BigDecimal.class, BigDecimalSimpledCoder.instance);
- this.register(InetAddress.class, InetAddressSimpledCoder.instance);
- this.register(InetSocketAddress.class, InetAddressSimpledCoder.InetSocketAddressSimpledCoder.instance);
- this.register(LongAdder.class, LongAdderSimpledCoder.instance);
- this.register(Uint128.class, Uint128SimpledCoder.instance);
- this.register(Class.class, TypeSimpledCoder.instance);
- this.register(Pattern.class, PatternSimpledCoder.instance);
- this.register(File.class, FileSimpledCoder.instance);
- this.register(Throwable.class, ThrowableSimpledCoder.instance);
- this.register(CompletionHandler.class, CompletionHandlerSimpledCoder.instance);
- this.register(URL.class, URLSimpledCoder.instance);
- this.register(URI.class, URISimpledCoder.instance);
- // ---------------------------------------------------------
- this.register(ByteBuffer.class, ByteBufferSimpledCoder.instance);
- this.register(boolean[].class, BoolArraySimpledCoder.instance);
- this.register(byte[].class, ByteArraySimpledCoder.instance);
- this.register(short[].class, ShortArraySimpledCoder.instance);
- this.register(char[].class, CharArraySimpledCoder.instance);
- this.register(int[].class, IntArraySimpledCoder.instance);
- this.register(IntStream.class, IntArraySimpledCoder.IntStreamSimpledCoder.instance);
- this.register(long[].class, LongArraySimpledCoder.instance);
- this.register(LongStream.class, LongArraySimpledCoder.LongStreamSimpledCoder.instance);
- this.register(float[].class, FloatArraySimpledCoder.instance);
- this.register(double[].class, DoubleArraySimpledCoder.instance);
- this.register(DoubleStream.class, DoubleArraySimpledCoder.DoubleStreamSimpledCoder.instance);
- this.register(String[].class, StringArraySimpledCoder.instance);
- // ---------------------------------------------------------
- this.register(AnyValue.class, Creator.create(AnyValueWriter.class));
- this.register(
- HttpCookie.class, (Object... params) -> new HttpCookie((String) params[0], (String) params[1]));
- try {
- Class sqldateClass =
- Thread.currentThread().getContextClassLoader().loadClass("java.sql.Date");
- Invoker