问题描述
我有两个值5和6,它们都是整数,它们是ArrayList的一部分。我还有另一个具有String输入的boolean方法,我必须比较该String的值并遍历该列表,看看该值是否与该列表中的元素匹配。如果匹配,那么我应该返回true,否则返回false。目的是查看我的值是否与列表中的值之一匹配。 该列表是常量类的一部分,并且我的方法位于Validator类中。下面是我的代码:
Constants.java:
public static final List<Integer> TYPES = new ArrayList<Integer> (Arrays.asList(5,6));
Validator.java:
public static boolean isPromoTypeFormatValid (String value) {
value = Util.getTrimmedValue(value);
int intValue = Integer.valueOf(value);
List <Integer> promoTypeList = scpduuConstants.PROMO_TYPES;
for(int i = 0; i < promoTypeList.size(); i++) {
if (promoTypeList.contains(intValue)) {
return true;
}
}
return false;
}
是否有更好的方法来执行此操作?如果将String值与ArrayList值比较为整数,是否会出现问题?我对此有些陌生,但尝试找出最有效的方法。请让我知道任何建议。
解决方法
也许这会有所帮助:
public static final List<Integer> TYPES = new ArrayList<Integer>(Arrays.asList(5,6));
public static void main(String[] args) {
final String value = "5";
checkValue(value);
}
public static boolean checkValue(String value) {
final var valueAsInt = Integer.parseInt(value.trim());
return TYPES.contains(valueAsInt);
}