gpt4 book ai didi

java - 有没有更好的方法从多个字符串数组中找到任何字符串

转载 作者:行者123 更新时间:2023-11-30 07:43:54 24 4
gpt4 key购买 nike

在下面的例子中,有一些预定义的字符串数组,我在下面的例子中提到过,现在我的要求是如果每个数组中的 boName prensents 我需要调用为特定自定义文件定义的方法。有没有其他方法可以避免多个 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;

}

}

最佳答案

如果您使用的是 Java8,则可以利用函数式接口(interface)。只需创建新函数,将您的数组作为第一个参数,将供应商函数作为第二个。在供应商中,您可以传递有关添加的逻辑。而且您需要多次调用该函数而不是重复代码。

关于java - 有没有更好的方法从多个字符串数组中找到任何字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52963975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com