2019-1-9后台代码学习SocialMember模块笔记
关于Lambda语法糖和stream流写法
==一般来讲以Example结尾的实体类是Entity(自动生成类)的对于增删查改条件查询的方法做的自动化生成的查询参数的生成 #9e9e9e==
1 | List<SocialMemberPo> list = socialMemberMapext.queryMemberList(dto.getSocialId(), dto.getName(), |
1 | List<SocialMemberPo> list = socialMemberMapext.queryMemberList(dto.getSocialId(), dto.getName(), |
可以看到前者使用Java 8 API中的Stream流的写法和Lambda表达式而后者就是传统的代码
==分析此代码可以看出 #800000==
在正常的普通代码中我们通过遍历foreach的写法查询list这个集合调用Strings^[具体可以参考如下String API https://logging.apache.org/log4j/2.0/log4j-api/apidocs/org/apache/logging/log4j/util/Strings.html]这个类的isNotBlank方法来判断是否传入的空白如果不是空白就通过get和set方法传出(在此处是通过对equal方法的调用和通过运算符的判断如果满足MALE则返回的是男否则女.而在前者中我们可以看到通过流的写法简化了通过调用list对象的流的forEach方法直接遍历原本的SocialMemberPo实体类然后通过Lambda函数式编程的思想通过item中间类直接操作get和set等方法借以简化代码
isNotBlank()和isNotEmpty()的区别**
1. null是没有地址的,可以理解为空指针,当对象在构建器初始化时,如果没有被显示赋于初值,那么默认会默认赋值为null
2. “”空字符串是一个String对象是有地址的,只是内容为空。
再比如下面这个代码1
2
3
4
5
6
7
8
9
10
11List<SupplierSyn> synList = supplierSynMapper.selectByExample(supplierSynExample);
if (synList.size() > 0) {
SupplierSyn supplierSyn = synList.get(0);
list.forEach(item -> {
if (supplierSyn.getSynSupplierList().equals(item.getSynedSupplier())) {
item.setSynStatus(SynStatusEnum.SYNCHRONIZED.name());
} else {
item.setSynStatus(SynStatusEnum.NOT_SYNCHRONIZED.name());
}
});
}
1 | List<SupplierSyn> synList = supplierSynMapper.selectByExample(supplierSynExample); |
可以轻易的看出前者使用流和Lambda表达式将item直接作为中间类的形式进行调用get和set方法传值和赋值然后通过list的forEach操作遍历循环。