专栏名称: 码农小胖哥
技术公众号:码农小胖哥
目录
相关文章推荐
51好读  ›  专栏  ›  码农小胖哥

Java中复杂的判断策略用这个会比较优雅| Java Debug 笔记

码农小胖哥  · 掘金  ·  · 2021-05-15 07:37

正文

阅读 179

Java中复杂的判断策略用这个会比较优雅| Java Debug 笔记

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接

最近在搞Excel导入,数据校验是少不了的,但是不同的数据字段有不同的校验策略,五花八门的,甚至不确定,所以就搞一个校验策略工具,把校验策略抽象出来。这里尝试了Java 8 提供的一个断言函数接口 java.util.function.Predicate<T> ,非常给力!把校验策略优雅地封装了起来,今天就简单分享一下对这个函数式接口的使用心得。

当然后面我又想了个办法把 JSR303 校验用到 导入校验 中了,这种方法就被我淘汰了,这都是后话了。

Predicate<T> 接口

Predicate的应用

先来看看效果:

    boolean validated = new Validator<String>()
            .with(s -> s.length() > 5)
            .with(s -> s.startsWith("felord"))
            .with(s -> s.endsWith("cn"))
            .with(s -> s.contains("."))
            .validate("felord.cn");
复制代码

我拿校验字符串为例子,通过一系列的 Predicate<String> 断言来对字符串 felord.cn 进行校验。这里不局限于 String 提供的方法,只要你满足 String -> boolean ,也就是一个字符串入参能得到一个布尔返回值,都可以作为条件。例如我们在数据库中检索某个字符串,我们可以写一个非常常见的 UserService 查询用户名是否存在或者有效:







请到「今天看啥」查看全文