java类的组成元素_jdk8 取集合中对象元素组成新的集合

Listmembers=newtermTeamMemberDao.queryTeamMember(teamNo);

ListuserIds=members.stream().map(m->m.getTeacherId()).collect(Collectors.toList());

JDK引入了Optional,有时候代码有点难理解,如:

Optional.ofNullable(service.method()).map(Object::objMethod).orElse(0);

这句的意思是:

1.先执行service.method(),返回的对象经过Optional类包装成为Optional对象。看下ofNullable源码:

public static Optional ofNullable(T value) {

return value == null ? empty() : of(value);

}

public static Optional empty() {

@SuppressWarnings("unchecked")

Optional t = (Optional) EMPTY;

return t;

}

public static Optional of(T value) {

return new Optional<>(value);

}2.调用Optional对象的map方法,源码:

public Optional map(Function super T, ? extends U> mapper) {

Objects.requireNonNull(mapper);

if (!isPresent())

return empty();

else {

return Optional.ofNullable(mapper.apply(value));

}

}就是对Optional对象里存的value对象调用一下传入的方法。

3.orElse就是返回到业务代码时,取一个值,源码:

public T orElse(T other) {

return value != null ? value : other;

}从上面可以看出Optional主要用于处理null的情况,怎么处理?就是把null转为一个值。所以基本用法就是先调ofNullable转成Optional再调orElse返回一个值。单从处理空值的情况看感觉还不如:if(rstObj==null) rstObj=0 这样简单呢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值