2017-10-12 19 views
-1

目的は、ラクダの大文字小文字の値でグループ化された文字列定数を持つことです。 理想的には:public enum Attribute {Measures, MeasuresLevel}です。 しかし、その命名規則に従っていません:定数名は大文字でなければなりません。 次のソリューションは、データの重複のようになります。ラクダの大文字小文字の値をグループ化した文字列定数

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

    private final String value; 

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

どれ代替、提案は非常に歓迎されています。ありがとう。

+2

で見てください質問? –

+0

なぜ慣習に従っていないのですか? – Valentun

答えて

0

@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; 
} 
1

多くのライブラリは、インスタンスGuavaのためのように、キャメルケースに変換するユーティリティを提供し、あなたの列挙にこれを入れて:

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

は、あなたは何グアバdocumentation

関連する問題