java8 Optional正确使用姿势
2024-10-20 11:43:34
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils; import java.util.Optional; @Data
@EqualsAndHashCode(exclude={"self"})
@ToString(callSuper=true, exclude="self")
public class PersonDto {
private Integer id;
private String name;
private String password; private Double self; public boolean validateName1() {
return StringUtils.equals("hjz", name);
} public static boolean validateName2(String name) {
return StringUtils.equals("hjz", name);
} public static void main(String[] args) {
PersonDto personDto = new PersonDto();
personDto.setName("hjz");
// String name = Optional.ofNullable(personDto)
// .map(obj -> obj.getName())
// .filter(StringUtils::isNotEmpty)
// .orElseThrow(()->new IllegalArgumentException("The value of param personDto isn't available.")); // String name = Optional.ofNullable(personDto)
// .map(obj -> obj.getName())
// .filter(PersonDto::validateName2)
// .orElseThrow(()->new IllegalArgumentException("The value of param personDto isn't available.")); String name = Optional.ofNullable(personDto)
.filter(PersonDto::validateName1)
.map(obj -> obj.getName())
.orElseThrow(()->new IllegalArgumentException("The value of param personDto isn't available."));
System.out.println(name);
}
}
最新文章
- 为IIS站点添加限制IP
- Oracle 11g 在备份导出时缺少表的问题
- Threading in C#
- sublime Text2.0.2注册码
- (hdu)1285 确定比赛名次
- 【pyhton】短路逻辑
- Android ListView+image的使用
- 重新开始学习javase_类再生(类的合成和继承)
- A题
- 章节2:SQL之多表连接
- 如何写好一个UITableView(完整版)
- 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)
- SpringMVC-DispatcherServlet配置(Spring-servlet.xml)
- ES6 WeakMap和WeakSet的使用场景
- 每日scrum(6)
- NOIP2018 货币系统
- 【开发】MFC到Delphi的皮肤移植
- Oracle+Mybatis批量插入,更新和删除
- BZOJ 1941: [Sdoi2010]Hide and Seek(k-d Tree)
- Linux的防火墙–Iptables