Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有驼峰大小写值的分组字符串常量_Java_Enums_Camelcasing - Fatal编程技术网

Java 具有驼峰大小写值的分组字符串常量

Java 具有驼峰大小写值的分组字符串常量,java,enums,camelcasing,Java,Enums,Camelcasing,目标是使用驼峰大小写值对字符串常量进行分组。 理想情况下是:公共枚举属性{Measures,MeasuresLevel}。 但是,它不符合命名约定:常量名称应为大写。 以下解决方案看起来像是数据复制: public enum Attribute { MEASURES("Measures"), MEASURES_LEVEL("MeasuresLevel"); private final String value; Attribute(String value)

目标是使用驼峰大小写值对字符串常量进行分组。 理想情况下是:
公共枚举属性{Measures,MeasuresLevel}
。 但是,它不符合命名约定:常量名称应为大写。 以下解决方案看起来像是数据复制:

public enum Attribute {
    MEASURES("Measures"), 
    MEASURES_LEVEL("MeasuresLevel");

    private final String value;

    Attribute(String value) {
        this.value = value;
    }
}

任何替代方案,建议都是非常受欢迎的。谢谢。

把这个放到你的枚举中

@Overwrite
public String toString(){
    String[] share = this.name().split("_");
    String camel = "";
    for(String s : share) {
        camel += s.charAt(0) + s.substring(1).toLowerCase();
    }
    return camel;
}

许多库提供了转换为camelcase的实用程序,例如
Guava

Stream.of(Attribute.values())
    .map(attr -> attr.toString())
    .map( attr -> CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, attr))
    .forEach(System.out::println);

看看番石榴吧

你的问题是什么?为什么不遵循惯例呢?