From 52231ccb223369f912eba2459c51f36a3c4f3bf3 Mon Sep 17 00:00:00 2001 From: tzdwindows 7 <3076584115@qq.com> Date: Sun, 17 Aug 2025 20:31:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(StateManager):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=80=BC=E4=B8=BA=E7=A9=BA=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 getStateAsInt、getStateAsLong、getStateAsFloat、getStateAsBoolean、 getStateAsDouble、getStateAsChar、getStateAsByte 和 getStateAsShort 方法中 增加了对配置值为空的检查 - 避免了空指针异常和 NumberFormatException - 提高了代码的健壮性和可靠性 --- .../innovators/box/tools/StateManager.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/axis/innovators/box/tools/StateManager.java b/src/main/java/com/axis/innovators/box/tools/StateManager.java index a08f963..0ed59d2 100644 --- a/src/main/java/com/axis/innovators/box/tools/StateManager.java +++ b/src/main/java/com/axis/innovators/box/tools/StateManager.java @@ -130,34 +130,42 @@ public class StateManager { } public int getStateAsInt(String key) { - return Integer.parseInt(configMap.get(key)); + String value = configMap.get(key); + return value != null ? Integer.parseInt(value) : 0; } public long getStateAsLong(String key) { - return Long.parseLong(configMap.get(key)); + String value = configMap.get(key); + return value != null ? Long.parseLong(value) : 0L; } public float getStateAsFloat(String key) { - return Float.parseFloat(configMap.get(key)); + String value = configMap.get(key); + return value != null ? Float.parseFloat(value) : 0.0f; } public boolean getStateAsBoolean(String key) { - return Boolean.parseBoolean(configMap.get(key)); + String value = configMap.get(key); + return value != null ? Boolean.parseBoolean(value) : false; } public double getStateAsDouble(String key) { - return Double.parseDouble(configMap.get(key)); + String value = configMap.get(key); + return value != null ? Double.parseDouble(value) : 0.0; } public char getStateAsChar(String key) { - return configMap.get(key).charAt(0); + String value = configMap.get(key); + return value != null && !value.isEmpty() ? value.charAt(0) : '\0'; } public byte getStateAsByte(String key) { - return Byte.parseByte(configMap.get(key)); + String value = configMap.get(key); + return value != null ? Byte.parseByte(value) : 0; } public short getStateAsShort(String key) { - return Short.parseShort(configMap.get(key)); + String value = configMap.get(key); + return value != null ? Short.parseShort(value) : 0; } } \ No newline at end of file