diff --git a/src/main/java/pw/yumc/YumCore/config/inject/InjectParse.java b/src/main/java/pw/yumc/YumCore/config/inject/InjectParse.java index 6f65091..42e2c59 100644 --- a/src/main/java/pw/yumc/YumCore/config/inject/InjectParse.java +++ b/src/main/java/pw/yumc/YumCore/config/inject/InjectParse.java @@ -3,6 +3,7 @@ package pw.yumc.YumCore.config.inject; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -32,6 +33,14 @@ public class InjectParse { } public static Object parse(Class clazz, ConfigurationSection config, String path) { + if (clazz.isEnum()) { + String value = config.getString(path); + try { + return Enum.valueOf(clazz, value); + } catch (IllegalArgumentException ex) { + throw new ConfigParseException(String.format("%s 不是 %s 有效值为 %s", value, clazz.getSimpleName(), Arrays.toString(clazz.getEnumConstants()))); + } + } return allparse.containsKey(clazz) ? allparse.get(clazz).parse(config, path) : null; } @@ -75,6 +84,7 @@ public class InjectParse { return new SimpleDateFormat(config.getString(path)); } } + public static class ListParse implements Parse { public ListParse() { allparse.put(List.class, this);