Я хотел бы найти самую длинную строку в Java Enum. Каков наилучший способ сделать это?
Я не слишком много работал с Enums, поэтому любые предложения приветствуются. Это мои перечисления
public enum DOMAIN_LANGUAGES {
ENG, SWE;
public static List<DOMAIN_LANGUAGES> getDomainLanguages(){
List<DOMAIN_LANGUAGES> languages = new ArrayList<DOMAIN_LANGUAGES>();
languages.add(ENG);
languages.add(SWE);
return languages;
}
}
public enum DOMAIN_STATE {
LIVE,
PENDING_RENEWAL,
PENDING_TRANSFER_OUT,
}
EDIT:
Я не очень хорошо определил этот вопрос, и поэтому я его редактирую.
Что мне нужно от двух моих перечислений - это функция, которая принимает любое из двух перечислений, которые я определила, и находит самый длинный литерал. Так что в DOMAIN_STATE это будет "PENDING_TRANSFER_OUT". Я надеюсь, что это немного облегчает понимание.
РЕДАКТИРОВАТЬ 2
Так что теперь я получил некоторую помощь, которая была отличной, но я не уверен, почему этот код не будет работать. Он жалуется, когда я пытаюсь использовать enumList.values ()? Это причина, по которой я не смог найти решение, чего мне не хватает? =)
public String CalculateDropdownListWidth(Enum enumList){
int chars = 0;
for(Enum e : enumList.values()){
//do stuff
}
}
FINAL:
Так что теперь я знаю, почему это не сработало. Я должен зациклить EnumSet вместо Enum. Так как Enum только один в «множестве», если я не полностью ошибаюсь.
Так что это мое решение. Спасибо всем за помощь!
public String CalculateDropdownListWidth(EnumSet enumList){
int chars = 0;
for(Object e : enumList){
if(e.toString().length() > chars){
chars = e.toString().length();
}
}
//Pixelmodifier
Double oneChar = 1.35;
Double result = oneChar * chars;
return String.valueOf(result) + "px";
}
Спасибо за любую помощь!
/ Marthin