我想找到Java Enum中最長的字符串。做這個的最好方式是什麼? 我一直在努力與Enums很多,所以任何建議是值得歡迎的。這是我的枚舉java獲得枚舉中最長的字符串
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,
}
編輯:
我沒有界定這個問題非常好,因此我對其進行編輯。 我從我的兩個枚舉中獲取的是一個函數,它接受我定義的兩種枚舉中的任何一種,並找到最長的文字。所以在DOMAIN_STATE中將是「PENDING_TRANSFER_OUT」。我希望這能讓事情變得更容易理解。
EDIT 2
所以現在我心中已經得到了SOM幫助,已經很大了,但是我不知道爲什麼這個代碼將無法正常工作。它嘗試使用enumList.values()時抱怨?這是我無法找到解決方案的原因,我錯過了什麼? =)
public String CalculateDropdownListWidth(Enum enumList){
int chars = 0;
for(Enum e : enumList.values()){
//do stuff
}
}
決賽:
所以現在我knwo爲什麼沒有工作。我希望遍歷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";
}
Thx任何幫助!
/Marthin
不需要'getDomainLanguages'。有一個方法'values()'爲每個'enum'定義,它返回一個值數組。 – 2011-04-11 13:25:04
我沒有看到任何字符串。你的意思是最長的枚舉文字,比如第二個枚舉中的'PENDING_TRANSFER_OUT'? – 2011-04-11 13:25:11
我很困惑,上面的例子中沒有字符串,DOMAIN_STATE與什麼有關? – 2011-04-11 13:25:23