需要获取所有验证条件

问题描述 投票:0回答:2

我需要获取并检查每个元素的元数据类型(书籍,语言或格式)。使用下面的代码,我得到此错误:

Cannot invoke equalsIgnoreCase(String) on the primitive type boolean
List<MetaDataTypeEntity> bookMdtTypeEntity=(List<MetaDataTypeEntity>)
CollectionUtils.emptyIfNull(getMetaDataTypes()).stream()
    .filter(data-> data.getMetaDataTypeName().equalsIgnoreCase("BOOK").equalsIgnoreCase("LANGUAGE").equalsIgnoreCase("FORMAT"))
    .findAny().orElse(null);

我需要进入每个JSON对象列表并检查条件BOOK和FORMAT LANGUAGE层次结构。请给我一个代码建议。

spring-boot
2个回答
0
投票

您需要更改条件,.equalsIgnoreCase("BOOK")返回boolean,所以您不能在.equalsIgnoreCase("LANGUAGE")上使用boolean

尝试以下代码:

List<MetaDataTypeEntity> bookMdtTypeEntity=(List<MetaDataTypeEntity>)
        CollectionUtils.emptyIfNull(getMetaDataTypes()).stream()
                .filter(data-> data.getMetaDataTypeName().equalsIgnoreCase("BOOK")
                        || data.getMetaDataTypeName().equalsIgnoreCase("LANGUAGE")
                        || data.getMetaDataTypeName().equalsIgnoreCase("FORMAT"))
                .findAny().orElse(null);

0
投票

您可以在Set中存储三个值

Set<String> values = Set.of("BOOK","LANGUAGE","FORMAT");   //from java 9

然后使用contains

List<MetaDataTypeEntity> bookMdtTypeEntity=(List<MetaDataTypeEntity>)
CollectionUtils.emptyIfNull(getMetaDataTypes()).stream()
.filter(data-> values.conatins(data.getMetaDataTypeName().toUpperCase()))
.findAny().orElse(null);
© www.soinside.com 2019 - 2024. All rights reserved.