当前位置: 首页 > news >正文

java isnull方法_Java 检查判断变量null(空值)的方法示例代码

1、一般方法判断null值if(country != null && country.getCity() != null && country.getCity().getSchool() != null && country.getCity().getSchool().getStudent() != null .....) {

isValid = true;

}

2、通过Optional判断null值if (Optional.ofNullable(country)

.map(Country::getCity)

.map(City::getSchool)

.map(School::getStudent)

.isPresent()) {

isValid = true;

}

或boolean isValid = Optional.ofNullable(country)

.map(Country::getCity)

.map(City::getSchool)

.map(School::getStudent)

.isPresent();

或boolean isValid = Optional.ofNullable(country)

.map(country -> country.getCity()) //Or use method reference Country::getCity

.map(city -> city.getSchool())

.map(school -> school.getStudent())

.map(student -> true)

.orElse(false);

3、使用Supplier var-args参数判断null值

boolean isValid = isValid(() -> address, // first level

() -> address.getCity(), // second level

() -> address.getCountry(),// second level

() -> address.getStreet(), // second level

() -> address.getZip(), // second level

() -> address.getCountry() // third level

.getISO()

@SafeVarargs

public static boolean isValid(Supplier... suppliers) {

for (Supplier supplier : suppliers) {

if (Objects.isNull(supplier.get())) {

// log, handle specific thing if required

return false;

}

}

return true;

}

boolean isValid = isValid( Arrays.asList("address", "city", "country",

"street", "zip", "Country ISO"),

() -> address, // first level

() -> address.getCity(), // second level

() -> address.getCountry(),// second level

() -> address.getStreet(), // second level

() -> address.getZip(), // second level

() -> address.getCountry() // third level

.getISO()

);

@SafeVarargs

public static boolean isValid(List fieldNames, Supplier... suppliers) {

if (fieldNames.size() != suppliers.length){

throw new IllegalArgumentException("...");

}

for (int i = 0; i < suppliers.length; i++) {

if (Objects.isNull(suppliers.get(i).get())) {

LOGGER.info( fieldNames.get(i) + " is null");

return false;

}

}

return true;

}

相关文章:

  • java容器类的实现_java容器类总结——基于JDK1.8
  • MySQL实验7存储过程_存储过程 · MySQL5.7文档 · 看云
  • php mysql insert 默认_PHP MySQL Insert Into
  • 称重机 java_Java实现称重3次找到假球
  • triangle java_LeetCode Triangle Java版本
  • python用户重复输入_在Python中从用户输入中查找重复值
  • java类与类之间的类图_UML类图(Class Diagram)中类与类之间的关系及表示方式(转)
  • java按时间范围过滤_Java列表按日期过滤
  • java员工表代码_基于java+ssh员工考勤管理系统源代码
  • java返回指定json格式_java返回json格式数据
  • java字符型数据的长度_Java字符串创建和长度
  • java正则表达式笔记_java正则表达式笔记
  • java打印两个字符串_Java 按字母顺序中打印两个字符串的公共字符
  • mysql 不显示警告信息_关闭mysql不安全语句警告
  • java 加载luasocket库_使用Lua的扩展库LuaSocket用例
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Docker: 容器互访的三种方式
  • express.js的介绍及使用
  • Java Agent 学习笔记
  • Java到底能干嘛?
  • mongodb--安装和初步使用教程
  • Node 版本管理
  • Odoo domain写法及运用
  • React Native移动开发实战-3-实现页面间的数据传递
  • Redis的resp协议
  • underscore源码剖析之整体架构
  • Vue2.x学习三:事件处理生命周期钩子
  • Yii源码解读-服务定位器(Service Locator)
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (2)(2.10) LTM telemetry
  • (HAL库版)freeRTOS移植STMF103
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .Net面试题4
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET使用存储过程实现对数据库的增删改查
  • .Net中ListT 泛型转成DataTable、DataSet
  • //解决validator验证插件多个name相同只验证第一的问题
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [Android] Implementation vs API dependency
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
  • [HTML]Web前端开发技术28(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页