包含用于Java枚举的方法
我有一个简单的枚举,我正在遍历它以检查它是否包含特定的值。这是我的密码-包含用于Java枚举的方法,java,Java,我有一个简单的枚举,我正在遍历它以检查它是否包含特定的值。这是我的密码- private static boolean checkCountryCode(CountryCode countryCode) { return Arrays.asList(CountryCodeList.values()).contains(countryCode.name()); } 尽管列表中存在我在请求中传递的国家/地区代码,但它始终返回false。在这种情况下,我不能重写equals,因为它是一个枚举
private static boolean checkCountryCode(CountryCode countryCode) {
return Arrays.asList(CountryCodeList.values()).contains(countryCode.name());
}
尽管列表中存在我在请求中传递的国家/地区代码,但它始终返回false。在这种情况下,我不能重写equals,因为它是一个枚举。我需要你的意见
方法参数中的countryCode包含我在请求中传递的countryCode。就我而言,它是UA(乌克兰)。CountryCodeList是一个预先填充了应用程序运行所在的所有国家/地区代码的列表。其中一些在本页上-
另外,请注意CountryCode和CountryCodeList都是枚举。如果CountryCodeList是枚举,您可以将代码重构为枚举
private static boolean checkCountryCode(CountryCode countryCode) {
try{
return CountryCodeList.valueOf(countryCode.name()) != null;
} catch (java.lang.IllegalArgumentException e) {
return false;
}
}
建立一个名到枚举的静态映射,然后在那里检查它。我认为你需要提供更多的相关代码,以便人们帮助你。例如,我们看不到CountryCodeList和CountryCode之间的关系。你可以尝试使用调试器或在该方法中打印一些值,看看这是否能给你答案。我不明白。为什么不只包含(countryCode)?什么是
CountryCodeList
?CountryCodeList包含所有国家代码的列表。正如类的名称所示。我进行了调试,发现它总是返回false。发布CountryCodeList
和CountryCode
的源代码。