皓月白熏 2022-08-25 22:41 采纳率: 80.8%
浏览 164
已结题

今天写代码看到这种写法,哪位朋友给分析一下好处?和改进方法?

今天写代码看到这种写法,哪位朋友给分析一下好处?
原来的写法:

public static final String VERSION_1 = "1_native";
public static final String VERSION_2 = "2_native";
public static final String VERSION_3 = "3_native";
public static final String VERSION_4 = "native_202207";
      ...
      if (VERSION_1.equals(version) || 
          VERSION_2.equals(version) || 
          VERSION_3.equals(version) ||
          VERSION_4.equals(version)){
        log.debug("Call " + version +" begin, senderId is " + cmd.getSenderID());
        handleNative(很多参数);
        return;
      ....

改了的写法:

public enum VersionEnum {
    VERSION_1("1_native"),
    VERSION_2("2_native"),
    VERSION_3("3_native"),
    VERSION_4("native_202207"),

    private String version;

    VersionEnum( String version) {
        this.version = version;
    }
    public String getVersion() {
        return version;
    }
}
...
VersionEnum versionEnum = VersionEnum.valueOf(version);
 switch (versionEnum) {
        case VERSION_1:
        case VERSION_2:
        case VERSION_3:
        case native_202207:
          log.debug("Call " + version +" begin, senderId is " + cmd.getSenderID());
          handleNative(很多参数);
          return;
      }
...

还可以怎么改进?

  • 写回答

7条回答 默认 最新

  • heling_m6ss 2022-08-26 11:07
    关注
    
    public enum VersionEnum {
        VERSION_1("1_native"),
        VERSION_2("2_native"),
        VERSION_3("3_native"),
        VERSION_4("native_202207"),;
     
        private String version;
     
        VersionEnum( String version) {
            this.version = version;
        }
        public String getVersion() {
            return version;
        }
    
        /**
         *  匹配
         * @return
         */
        public static boolean match(String version){
           return Arrays.stream(values()).anyMatch(versionEnum -> versionEnum.getVersion().equals(version));
        }
    
       
    }
    
      if (VersionEnum.match(version)){
                log.debug("Call " + version +" begin, senderId is " + cmd.getSenderID());
                handleNative(很多参数);
    
            }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 已采纳回答 8月30日
  • 创建了问题 8月25日

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程