遇到问题 : Constant expression required

原因

switch case中 CASE只能使用常量 , 所以使用枚举类的方法时报如上错误
解决方式也很简单,只需要把switch里的对象改为枚举对象 , case使用枚举判断

直接上代码

  • 枚举类代码
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum WelComeTypeEnum {
    /**
     * 欢迎语类型
     */
    IMAGE(1, "image", "图片"),
    LINK(2, "link", "链接"),
    MINIAPP(3, "miniapp", "小程序"),
    VIDEO(4, "video", "视频"),

    private Integer type;
    private String name;
    private String Remark;

    public static WelComeTypeEnum getByName(String name) {
        for (WelComeTypeEnum ele : values()) {
            if (ele.getName().equals(name)) {
                return ele;
            }
        }
        return null;
    }
}
  • JAVA switch代码
public class AloneTest{
    public static void main(String[] args) {
    	// TODO 真实环境中这里是你的逻辑代码
        String fileType = "image";
        switch (Objects.requireNonNull(WelComeTypeEnum.getByName(fileType))){
            case IMAGE:
                System.out.println("there ara IMAGE");
                break;
            case LINK:
                System.out.println("there ara LINK");
                break;
            case MINIAPP:
                System.out.println("there ara MINIAPP");
                break;
            case VIDEO:
                System.out.println("there ara VIDEO");
                break;
            default:
                System.out.println("The enumeration does not exist");
                break;
        }
    }
}
Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐