我正在寻找一个更好(更简洁)的解决方案,用于在 Jackson 中将大写的 Java 枚举常量序列化/反序列化为小写,而不是以下样板代码:
public enum GitLabPipelineStatusEnum {
@JsonProperty("canceled")
CANCELED,
@JsonProperty("created")
CREATED,
@JsonProperty("failed")
FAILED,
@JsonProperty("manual")
MANUAL,
Run Code Online (Sandbox Code Playgroud) 我想知道是否有一种更优雅的方式来编写以下代码,它利用了一些流,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中执行类似的操作.