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

如何将网站建设得更好包装设计作品集

如何将网站建设得更好,包装设计作品集,wordpress分类别名中文404,百度游戏排行榜以下是实现链式条件检查的Java方法,采用函数式风格设计。代码包含一个Chainable类,支持连续的check方法和多个终止操作(如then, orElse等),满足在条件为false时中断链式调用并返回默认值的需求:import java…

以下是实现链式条件检查的Java方法,采用函数式风格设计。代码包含一个Chainable类,支持连续的check方法和多个终止操作(如then, orElse等),满足在条件为false时中断链式调用并返回默认值的需求:

import java.util.Optional;
import java.util.function.Supplier;public class Chainable {private boolean shouldProceed = true;private Chainable() {}// 起始方法public static Chainable start() {return new Chainable();}// 核心检查方法:满足条件则继续,不满足则中断后续链式调用public Chainable check(Supplier<Boolean> conditionSupplier) {if (shouldProceed) {this.shouldProceed = conditionSupplier.get();}return this;}// 简化版检查(直接使用布尔值)public Chainable check(boolean condition) {return check(() -> condition);}// 执行操作并返回结果(中断时返回null)public <R> R then(Supplier<R> supplier) {return shouldProceed ? supplier.get() : null;}// 执行无返回值操作public void then(Runnable runnable) {if (shouldProceed) runnable.run();}// 执行操作并返回Optional(中断时返回空Optional)public <R> Optional<R> thenOptional(Supplier<R> supplier) {return shouldProceed ? Optional.ofNullable(supplier.get()) : Optional.empty();}// 中断时返回指定默认值public <R> R orElse(Supplier<R> supplier, R defaultValue) {return shouldProceed ? supplier.get() : defaultValue;}// 中断时执行备选操作public <R> R orElseGet(Supplier<R> mainSupplier, Supplier<R> backupSupplier) {return shouldProceed ? mainSupplier.get() : backupSupplier.get();}// 中断时抛出指定异常public <R> R orElseThrow(Supplier<R> supplier, Supplier<? extends RuntimeException> exceptionSupplier) {if (!shouldProceed) throw exceptionSupplier.get();return supplier.get();}
}

使用示例

public static void main(String[] args) {// 示例1:条件全部满足时返回计算结果Integer result1 = Chainable.start().check(() -> 10 > 5).check(() -> 20 > 15).then(() -> 10 + 20);System.out.println("Result 1: " + result1); // 输出 30// 示例2:条件不满足时返回默认值String result2 = Chainable.start().check(false) // 直接中断.check(() -> { System.out.println("此代码不会执行");return true;}).orElse(() -> "成功", "失败");System.out.println("Result 2: " + result2); // 输出 "失败"// 示例3:中断时抛出异常try {Chainable.start().check(3 > 5).orElseThrow(() -> "计算结果",() -> new IllegalStateException("条件检查失败"));} catch (Exception e) {System.out.println("Caught: " + e.getMessage()); // 输出异常信息}// 示例4:无返回值的操作Chainable.start().check(() -> true).then(() -> System.out.println("操作被执行")); // 正常输出// 示例5:使用Optional避免nullOptional<String> optional = Chainable.start().check(false).thenOptional(() -> "不会执行");System.out.println("Optional: " + optional.isPresent()); // 输出 false
}

关键特性:

  1. 链式中断机制​ - 当任何check失败时,后续链式调用自动跳过
  2. 延迟计算​ - 使用Supplier<Boolean>避免不必要的条件计算
  3. 多终止操作​:
    • then():返回结果或null
    • thenOptional():返回安全容器
    • orElse():提供默认值
    • orElseThrow():中断时抛出异常
  4. 类型安全​ - 通过泛型支持任意返回类型
  5. 空值安全​ - Optional包装避免NPE

此实现通过函数式接口保持代码简洁,同时提供灵活的中断处理和多种返回策略,符合现代Java编程风格。

http://www.dtcms.com/a/515945.html

相关文章:

  • TypeScript Number
  • Python 基础语法详解:从顺序到循环
  • wordpress建网站教程完整网站开发视频教程
  • 数据结构11:二叉树的数据类型和遍历方式
  • Nanomsg库CMakeLists.txt文件阅读笔记
  • 关于二叉树的一些算法题
  • 上下文工程实践:利用GLM-4.6和TRAE SOLO打造新粗野主义风格音乐创作网站
  • 在网站中添加百度地图注册自己的网站
  • 【基于CAPL进行TXT文件读取】—2.使用指令将读取的文件内容发送到trace
  • 一万个为什么:汉语词性对NLP的作用
  • Python开发:BackgroundTasks和asyncio.create_task()的区别
  • InnoDB 独立表空间(ibd 文件)迁移实战指南
  • 22_AI智能体开发架构搭建之基于Redis构建高性能AI对话记忆存储服务实践
  • SIMPLE
  • 企业专业网站建设wordpress炫酷背景
  • MTPA算法原理及仿真验证
  • 【记录62】网站输入框搜索内容页面定位
  • 2025年新版ADB工具箱下载+驱动+ADB指令集+fastboot刷机ROOT工具
  • 上海网站建设平台站霸网络快速提升关键词排名软件
  • 【Android】从源码角度理解Handler机制
  • docker技术之部署docker
  • node框架做网站国外浏览器推荐
  • 悬赏平台 wordpress免费网站优化怎么做
  • java数据结构--LinkedList与链表
  • 【笔记--如何安装python环境】
  • 汇川H5U 威纶通HMI双仿真编程
  • 平均指数移动(EMA)
  • 可灵AI邀请码
  • 做外贸的网站怎么建立矿大师德建设网站
  • C语言需要掌握的基础知识点之前缀和