小编DaB*_*ick的帖子

Jackson 中小写 Java Enum 常量的更好解决方案

我正在寻找一个更好(更简洁)的解决方案,用于在 Jackson 中将大写的 Java 枚举常量序列化/反序列化为小写,而不是以下样板代码:


    public enum GitLabPipelineStatusEnum {
        
        @JsonProperty("canceled")
        CANCELED,
        
        @JsonProperty("created")
        CREATED,
        
        @JsonProperty("failed")
        FAILED,
        
        @JsonProperty("manual")
        MANUAL,
Run Code Online (Sandbox Code Playgroud)

jackson

6
推荐指数
1
解决办法
2139
查看次数

有没有办法将布尔谓词应用于Java中的一组对象属性

我想知道是否有一种更优雅的方式来编写以下代码,它利用了一些流,lambdas和方法引用的组合:

final boolean valid = StringUtils.hasText(obj.getFirstName())
                && StringUtils.hasText(obj.getLastName())
                && StringUtils.hasText(obj.getGender())
                && StringUtils.hasText(obj.getDob());
Run Code Online (Sandbox Code Playgroud)

理想情况下,它看起来像这样:

final boolean valid =
       something(StringUtil::hasText, 
                 obj.getFirstName(),
                 obj.getLastName(),
                 obj.getGender(),
                 obj.getDob());
Run Code Online (Sandbox Code Playgroud)

也许:

final boolean valid =
       something(StringUtil::hasText, obj,
                 Type::getFirstName(),
                 Type::getLastName(),
                 Type::getGender(),
                 Type::getDob());
Run Code Online (Sandbox Code Playgroud)

显然你可以把所有的getter放到List中,然后使用一个流,但这看起来很罗嗦.在我看来,可能有库函数在JRE中或者在Spring或Apache中执行类似的操作.

java lambda java-stream method-reference

1
推荐指数
1
解决办法
76
查看次数

标签 统计

jackson ×1

java ×1

java-stream ×1

lambda ×1

method-reference ×1