diff --git a/src/main/java/run/halo/app/model/enums/converter/AbstractConverter.java b/src/main/java/run/halo/app/model/enums/converter/AbstractConverter.java index 992395fd7..d0d5ebc95 100644 --- a/src/main/java/run/halo/app/model/enums/converter/AbstractConverter.java +++ b/src/main/java/run/halo/app/model/enums/converter/AbstractConverter.java @@ -1,8 +1,11 @@ package run.halo.app.model.enums.converter; import run.halo.app.model.enums.ValueEnum; +import run.halo.app.utils.ReflectionUtils; import javax.persistence.AttributeConverter; +import java.lang.reflect.Type; +import java.util.Objects; /** * Abstract converter. @@ -16,8 +19,12 @@ public abstract class AbstractConverter, V> implements At private final Class clazz; - protected AbstractConverter(Class clazz) { - this.clazz = clazz; + @SuppressWarnings("unchecked") + protected AbstractConverter() { + Type enumType = Objects.requireNonNull( + ReflectionUtils.getParameterizedTypeBySuperClass(AbstractConverter.class, this.getClass()) + ).getActualTypeArguments()[0]; + this.clazz = (Class) enumType; } @Override diff --git a/src/main/java/run/halo/app/model/enums/converter/AttachmentTypeConverter.java b/src/main/java/run/halo/app/model/enums/converter/AttachmentTypeConverter.java index 04835e7d7..cf4149371 100644 --- a/src/main/java/run/halo/app/model/enums/converter/AttachmentTypeConverter.java +++ b/src/main/java/run/halo/app/model/enums/converter/AttachmentTypeConverter.java @@ -13,7 +13,4 @@ import javax.persistence.Converter; @Converter(autoApply = true) public class AttachmentTypeConverter extends AbstractConverter { - public AttachmentTypeConverter() { - super(AttachmentType.class); - } } diff --git a/src/main/java/run/halo/app/model/enums/converter/CommentStatusConverter.java b/src/main/java/run/halo/app/model/enums/converter/CommentStatusConverter.java index 9ab9ff71c..77e28d673 100644 --- a/src/main/java/run/halo/app/model/enums/converter/CommentStatusConverter.java +++ b/src/main/java/run/halo/app/model/enums/converter/CommentStatusConverter.java @@ -13,8 +13,4 @@ import javax.persistence.Converter; @Converter(autoApply = true) public class CommentStatusConverter extends AbstractConverter { - public CommentStatusConverter() { - super(CommentStatus.class); - } - } diff --git a/src/main/java/run/halo/app/model/enums/converter/DataTypeConverter.java b/src/main/java/run/halo/app/model/enums/converter/DataTypeConverter.java index 77c9fc84c..fc633c6b6 100644 --- a/src/main/java/run/halo/app/model/enums/converter/DataTypeConverter.java +++ b/src/main/java/run/halo/app/model/enums/converter/DataTypeConverter.java @@ -13,7 +13,4 @@ import javax.persistence.Converter; @Converter(autoApply = true) public class DataTypeConverter extends AbstractConverter { - public DataTypeConverter() { - super(DataType.class); - } } diff --git a/src/main/java/run/halo/app/model/enums/converter/LogTypeConverter.java b/src/main/java/run/halo/app/model/enums/converter/LogTypeConverter.java index cef00f435..fab227fe9 100644 --- a/src/main/java/run/halo/app/model/enums/converter/LogTypeConverter.java +++ b/src/main/java/run/halo/app/model/enums/converter/LogTypeConverter.java @@ -13,7 +13,4 @@ import javax.persistence.Converter; @Converter(autoApply = true) public class LogTypeConverter extends AbstractConverter { - public LogTypeConverter() { - super(LogType.class); - } } diff --git a/src/main/java/run/halo/app/model/enums/converter/PostStatusConverter.java b/src/main/java/run/halo/app/model/enums/converter/PostStatusConverter.java index bcdba5650..6e8fad90b 100644 --- a/src/main/java/run/halo/app/model/enums/converter/PostStatusConverter.java +++ b/src/main/java/run/halo/app/model/enums/converter/PostStatusConverter.java @@ -13,7 +13,4 @@ import javax.persistence.Converter; @Converter(autoApply = true) public class PostStatusConverter extends AbstractConverter { - public PostStatusConverter() { - super(PostStatus.class); - } } diff --git a/src/main/java/run/halo/app/model/enums/converter/PostTypeConverter.java b/src/main/java/run/halo/app/model/enums/converter/PostTypeConverter.java index 600fdac4d..b3815ed58 100644 --- a/src/main/java/run/halo/app/model/enums/converter/PostTypeConverter.java +++ b/src/main/java/run/halo/app/model/enums/converter/PostTypeConverter.java @@ -14,7 +14,4 @@ import javax.persistence.Converter; @Deprecated public class PostTypeConverter extends AbstractConverter { - public PostTypeConverter() { - super(PostType.class); - } }