【发布时间】:2018-10-24 08:13:07
【问题描述】:
在下面的示例中,有一些预定义的字符串数组,我在下面的示例中提到过,现在我的要求是如果每个数组中存在 boName,我需要调用为特定自定义字段定义的方法。有没有其他方法可以避免多个 for 循环。
public class MyClass {
private static final String[] OTHER_CUSTOM_FIELD_RELATED_BO_NAME = { "A", "B", "C", "D", "E", "F", "G", "H" };
private static final String[] TRANSACTION_CUSTOM_FIELD_RELATED_BO_NAME = { "A", "AB", "CD", "DE", "EG" };
private static final String[] CRM_CUSTOM_FIELD_RELATED_BO_NAME = { "I", "J", "K", "L", "M" };
private static final String[] ITEM_CUSTOM_FIELD_RELATED_BO_NAME = { "N", "O", "P", "Q" };
private static final String[] ENTITY_CUSTOM_FIELD_RELATED_BO_NAME = { "AN", "ZY", "X", "P" };
public static List<String> BusinessObjectDescribe(String boName) {
List<String> fields = new ArrayList<String>();
if (boName != null && !boName.isEmpty()) {
for (String string : OTHER_CUSTOM_FIELD_RELATED_BO_NAME) {
if (boName.equals(string)) {
fields.addAll(getOtherCustomFields());
break;
}
}
for (String string : TRANSACTION_CUSTOM_FIELD_RELATED_BO_NAME) {
if (boName.equals(string)) {
fields.addAll(getTransactionCustomFields());
break;
}
}
for (String string : CRM_CUSTOM_FIELD_RELATED_BO_NAME) {
if (boName.equals(string)) {
fields.addAll(getCRMCustomFields());
break;
}
}
for (String string : ITEM_CUSTOM_FIELD_RELATED_BO_NAME) {
if (boName.equals(string)) {
fields.addAll(getITEMCustomFields());
break;
}
}
for (String string : ENTITY_CUSTOM_FIELD_RELATED_BO_NAME) {
if (boName.equals(string)) {
fields.addAll(getEntityCustomFields());
break;
}
}
}
return fields;
}
}
【问题讨论】:
-
有很多方法可以进行高效的字符串搜索