【发布时间】:2019-03-27 12:23:51
【问题描述】:
我已经阅读了很多关于代码重构和避免 if else 语句的主题。实际上,我有一门课使用了很多 if - else 条件。
private static String getXSIType(String fieldType) {
if ("_freeFormText".equals(fieldType) || "_eMailAddress".equals(fieldType) || "_help".equals(fieldType)
|| "_hyperlink".equals(fieldType) || "_inlineText".equals(fieldType) || "_longText".equals(fieldType)
|| "_password".equals(fieldType) || "_phoneNumber".equals(fieldType) || "_richText".equals(fieldType)
|| "_textArea".equals(fieldType)) {
return "platformCore:StringCustomFieldRef";
} else if ("_integerNumber".equals(fieldType)) {
return "platformCore:LongCustomFieldRef";
} else if ("_multipleSelect".equals(fieldType)) {
return "platformCore:MultiSelectCustomFieldRef";
} else if ("_document".equals(fieldType) || "_listRecord".equals(fieldType) || "_image".equals(fieldType)) {
return "platformCore:SelectCustomFieldRef";
} else if ("_currency".equals(fieldType) || "_decimalNumber".equals(fieldType)
|| "_percent".equals(fieldType)) {
return "platformCore:DoubleCustomFieldRef";
} else if ("_checkBox".equals(fieldType)) {
return "platformCore:BooleanCustomFieldRef";
} else if ("_date".equals(fieldType) || "_datetime".equals(fieldType) || "_timeOfDay".equals(fieldType)) {
return "platformCore:DateCustomFieldRef";
}
return "platformCore:StringCustomFieldRef";
}
现在,我想使用其他东西,而不是那些 if else 条件,但我不知道是什么。
你能给我一个例子或一个好的教程页面吗?
谢谢
【问题讨论】:
-
可以使用switch-case语句或者静态map
-
你可以使用
Map -
您可以使用 switch-case 并让代码更具可读性,您可以使用 Enums
-
如果您的 java 版本支持字符串的 Switch case,您可以使用 Switch case。
-
@Hades 你能告诉我如何将它转换成枚举吗?
标签: java xml if-statement conditional-statements netsuite