Jenny:
Tengo dos conjuntos de productos
public enum ProductType {
FOUNDATION_OR_PAYMENT ("946", "949", "966"),
NOVA_L_S_OR_SESAM ("907", "222");
private String[] type;
ProductType(String... type) {
this.type = type;
}
}
A continuación, le da un valor "actualProductType" Tengo que comprobar si es parte de la ProductType ..How hago esto ..
isAnyProductTypes(requestData.getProductType(), ProductType.NOVA_L_S_SESAM)
public boolean isAnyProductTypes(String actualProductType, ProductType productTypes) {
return Arrays.stream(productTypes).anyMatch(productType -> productType.equals(actualProductType));
}
Me aparece un error en esta parte Arrays.stream (productTypes)
Eugene:
Debido a que su enumeración no cambia, se podría construir un Map
interior de consulta rápida:
public enum ProductType {
FOUNDATION_OR_PAYMENT("946", "949", "966"),
NOVA_L_S_OR_SESAM("907", "222");
static Map<String, ProductType> MAP;
static {
MAP = Arrays.stream(ProductType.values())
.flatMap(x -> Arrays.stream(x.type)
.map(y -> new SimpleEntry<>(x, y)))
.collect(Collectors.toMap(Entry::getValue, Entry::getKey));
}
private String[] type;
ProductType(String... type) {
this.type = type;
}
public boolean isAnyProductTypes(String actualProductType, ProductType productTypes) {
return Optional.ofNullable(MAP.get(actualProductType))
.map(productTypes::equals)
.orElse(false);
}
}