diff --git a/src/main/java/pw/yumc/YumCore/config/inject/AbstractInjectConfig.java b/src/main/java/pw/yumc/YumCore/config/inject/AbstractInjectConfig.java index 1100c23..55321dd 100644 --- a/src/main/java/pw/yumc/YumCore/config/inject/AbstractInjectConfig.java +++ b/src/main/java/pw/yumc/YumCore/config/inject/AbstractInjectConfig.java @@ -74,7 +74,7 @@ public abstract class AbstractInjectConfig { if (type.equals(String.class)) { value = ChatColor.translateAlternateColorCodes('&', String.valueOf(value)); } - if (!type.isAssignableFrom(value.getClass())) { + if (value != null && !type.isAssignableFrom(value.getClass())) { Log.w("字段 %s 默认类型为 %s 但解析后为 %s 可能存在转换错误!", field.getName(), type.getName(), value.getClass().getName()); } field.set(this, value); 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 f130a8f..c9781ab 100644 --- a/src/main/java/pw/yumc/YumCore/config/inject/InjectParse.java +++ b/src/main/java/pw/yumc/YumCore/config/inject/InjectParse.java @@ -36,7 +36,7 @@ public class InjectParse { public static Object parse(Class type, Object value, ConfigurationSection config, String path) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { if (allparse.containsKey(type)) { return allparse.get(type).parse(config, path); } try { - return type.getDeclaredMethod("valueOf", String.class).invoke(null, value); + return type.getDeclaredMethod("valueOf", String.class).invoke(null, String.valueOf(value)); } catch (NoSuchMethodException | IllegalArgumentException ignored) { } if (InjectConfigurationSection.class.isAssignableFrom(type)) {