java8
java8
我本半山人
人生昧旅,砥砺前行
展开
-
关于前端传参后端无法接收的踩坑实录
之前写业务新增的时候,数据库表分为基础明细表,基础表存储基本信息,明细表存储明细。基础对明细是一对多。业务逻辑大概是这样,前端传基础信息和明细信息,明细信息分为甲方来源,乙方来源,丙方来源。于是我的数据结构就封成了@Setter@Getterpublic class RequestAddDto{ ... @ApiModelProperty(value = "明细信息 -...原创 2020-02-26 17:50:39 · 2726 阅读 · 2 评论 -
根据类中某个属性去重
因为某个业务根据某个字段去重,记不得从哪学到的,写了个方法:public static <T> Predicate<T> distinctByKey(final Function<? super T, ?> keyExtractor) { final Map<Object,Boolean> maps = new Concurrent...原创 2020-02-26 17:31:46 · 314 阅读 · 0 评论 -
lambda(一)
行为参数化:让方法接受函数作为参数,并且在内部进行调用。安利《Java8实战》,我至今才读到行为参数化和lambda表达式,不得不说这本书让人受益匪浅,就算我才看几章,他的设计理念也让人大大的提升了代码的复用性和简洁性。在书中有这么一个图:举个列子,因为在开发的过程中,需求变化总是难以预计的,这时候就需要一个复用性更高的设计模式。假设有个果农,他有一对水果,这天他要筛选出红色的苹果,第...原创 2019-07-21 11:16:08 · 210 阅读 · 0 评论 -
lambda(二)语法
java8推出了lambda.Lambda :可以传递匿名函数的一种方式,没有名称,但是有参数列表,函数主体,返回类型,可能还有一个可以抛出异常的异常列表。基本语法:(parameters)->expression或者:(parameteres)->{statements;}随便举几个案列:布尔表达式 (List<String...原创 2019-07-22 23:13:41 · 156 阅读 · 0 评论 -
Lambda(三)--环绕执行模式
环绕执行模式(execute around):做资源处理时一个常见的操作模式就是打开一些资源,执行一些代码,然后将这些资源关闭。这些打开资源,关闭资源的操作总是十分的类似并且围绕着那些需要处理的重要代码,这就是环绕执行模式。在《唯品会Java开发手册》当中,方法设计第四条:【推荐】尽量减少重复的代码,抽取方法超过5行以上重复的代码,都可以考虑抽取公用的方法。就直接列举书中的例子...原创 2019-07-24 21:04:36 · 538 阅读 · 0 评论 -
Lambda(四)--常用的函数式接口
predicate:这篇有点搬书java.util.function.Predicate<T>接口定义了一个名叫test的抽象方法,它接受泛型 T对象,并返回一个boolean。我最近实践的过程中发现这个接口在写查找方法的时候效果很好。可以极大的降低代码的冗余。@FunctionalInterface public interface Predicate<T>...原创 2019-07-29 21:05:17 · 128 阅读 · 0 评论 -
Lambda(五)-方法引用
方法引用:方法引用就是让我们根据已有的方法创建lambda表达式,假如一个lambda表达式只是单纯的调用一下这个方法,那么我们就可以省去描述的步骤,直接用名称进行调用。语法:目标引用 :: 方法名称其中::是分隔符等效方法引用不需要加上括号,因为并没有实际调用这个方法。主要的三类方法引用:1.指向静态方法的方法引用。如integer 的parseint方法,...原创 2019-08-02 20:14:36 · 181 阅读 · 0 评论 -
Lambda(六)--复合Lambda
Lambda复合意味着我们可以将多个简单的Lambda表达式组合而成一个新的复杂的表达式。在此函数式接口中虽然用到了不止一个方法,但其余的都是默认方法不是抽象方法,函数式接口定义的抽象方法一定只有一个。本篇总结其中的比较器复合,谓词复合,函数复合一、比较器复合我们之前对苹果按照重量排序时,曾经写过:List<Apple> inventor = Arrays.asLi...原创 2019-08-18 20:27:05 · 317 阅读 · 0 评论 -
java实现两张表的关联查询(非数据库语言)
已知我有两张表:我现在查询时需要同时获取两张表对应的数据。比如我想要获取 stuid,honName,obreson三个对应字段。我在脑子里梳理了一下思路,以我目前的知识储备,只能在数据库写一下两个表join,然后在bean层,要么一个里面封装另外一个对象,要么另外写一个类封装一下。很明显第一个方法有点违反开闭原则,假如这个底层不是我写的那我绝对不能这么干,第二个又有点繁琐,所以我...原创 2019-09-12 14:58:50 · 8804 阅读 · 0 评论