我想找到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