This is an automated email from the ASF dual-hosted git repository.

RongtongJin pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new e18f0d2c2c [ISSUE #10511] Replace Enum.values() loop with static array 
lookup in LanguageCode and SerializeType (#10513)
e18f0d2c2c is described below

commit e18f0d2c2c68a800169b9a16ca4e5d2e02bb104c
Author: Jiahua Wang <[email protected]>
AuthorDate: Wed Jun 17 14:10:28 2026 +0800

    [ISSUE #10511] Replace Enum.values() loop with static array lookup in 
LanguageCode and SerializeType (#10513)
    
    Co-authored-by: wangjiahua.wjh <[email protected]>
---
 .../rocketmq/remoting/protocol/LanguageCode.java    | 21 +++++++++++++++------
 .../rocketmq/remoting/protocol/SerializeType.java   | 10 ++++------
 2 files changed, 19 insertions(+), 12 deletions(-)

diff --git 
a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/LanguageCode.java
 
b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/LanguageCode.java
index cf43cbab3d..2ae0999285 100644
--- 
a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/LanguageCode.java
+++ 
b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/LanguageCode.java
@@ -38,6 +38,19 @@ public enum LanguageCode {
     RUST((byte) 12),
     NODE_JS((byte) 13);
 
+    private static final LanguageCode[] BY_CODE;
+    static {
+        LanguageCode[] all = values();
+        int max = 0;
+        for (LanguageCode lc : all) {
+            max = Math.max(max, lc.code & 0xFF);
+        }
+        BY_CODE = new LanguageCode[max + 1];
+        for (LanguageCode lc : all) {
+            BY_CODE[lc.code & 0xFF] = lc;
+        }
+    }
+
     private byte code;
 
     LanguageCode(byte code) {
@@ -45,12 +58,8 @@ public enum LanguageCode {
     }
 
     public static LanguageCode valueOf(byte code) {
-        for (LanguageCode languageCode : LanguageCode.values()) {
-            if (languageCode.getCode() == code) {
-                return languageCode;
-            }
-        }
-        return null;
+        int idx = code & 0xFF;
+        return idx < BY_CODE.length ? BY_CODE[idx] : null;
     }
 
     public byte getCode() {
diff --git 
a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/SerializeType.java
 
b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/SerializeType.java
index b040f8fbb6..9cdacc2fd6 100644
--- 
a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/SerializeType.java
+++ 
b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/SerializeType.java
@@ -21,6 +21,8 @@ public enum SerializeType {
     JSON((byte) 0),
     ROCKETMQ((byte) 1);
 
+    private static final SerializeType[] BY_CODE = {JSON, ROCKETMQ};
+
     private byte code;
 
     SerializeType(byte code) {
@@ -28,12 +30,8 @@ public enum SerializeType {
     }
 
     public static SerializeType valueOf(byte code) {
-        for (SerializeType serializeType : SerializeType.values()) {
-            if (serializeType.getCode() == code) {
-                return serializeType;
-            }
-        }
-        return null;
+        int idx = code & 0xFF;
+        return idx < BY_CODE.length ? BY_CODE[idx] : null;
     }
 
     public byte getCode() {

Reply via email to