Stream-Query Stream-Query
首页
  • 项目初衷与诞生
  • 介绍
  • 快速上手
  • 目录结构
  • core模块

    • Opp
    • Sf
    • Map
    • Steam
    • TreeHelper
    • HighlightHelper
    • ReflectHelper
    • BeanHelper
  • plugin模块

    • Database
    • One
    • Many
    • OneToOne
    • OneToMany
  • 安装

    • 通过Maven安装
    • 通过Gradle安装
    • 下载jar安装
    • 通过源码编译
  • 动态mapper

    • 指定package
    • 指定注解
    • 指定接口
    • 指定实体类
  • 团队成员
  • dromara
  • 社区周边
  • 成为开发成员
  • 项目问题

    • 最新版本依赖下载失败
    • 项目编译报错
    • 如何贡献代码
    • 如何贡献文档
    • 使用本项目需要的前置知识
  • 其他问题

    • 作者是在全职维护开源吗
    • 你们这是个什么团队啊
    • 和其他类似的开源项目有什么区别
赞助
  • 1-5-0-alpha
  • 1-6-0-alpha
  • 1-7-0-alpha
  • 1-8-0
  • 1-9-0
  • 1-9-1
  • 2.0.0-alpha+001
  • 2.0.0-alpha+002
  • 2.0.2
Source (opens new window)
首页
  • 项目初衷与诞生
  • 介绍
  • 快速上手
  • 目录结构
  • core模块

    • Opp
    • Sf
    • Map
    • Steam
    • TreeHelper
    • HighlightHelper
    • ReflectHelper
    • BeanHelper
  • plugin模块

    • Database
    • One
    • Many
    • OneToOne
    • OneToMany
  • 安装

    • 通过Maven安装
    • 通过Gradle安装
    • 下载jar安装
    • 通过源码编译
  • 动态mapper

    • 指定package
    • 指定注解
    • 指定接口
    • 指定实体类
  • 团队成员
  • dromara
  • 社区周边
  • 成为开发成员
  • 项目问题

    • 最新版本依赖下载失败
    • 项目编译报错
    • 如何贡献代码
    • 如何贡献文档
    • 使用本项目需要的前置知识
  • 其他问题

    • 作者是在全职维护开源吗
    • 你们这是个什么团队啊
    • 和其他类似的开源项目有什么区别
赞助
  • 1-5-0-alpha
  • 1-6-0-alpha
  • 1-7-0-alpha
  • 1-8-0
  • 1-9-0
  • 1-9-1
  • 2.0.0-alpha+001
  • 2.0.0-alpha+002
  • 2.0.2
Source (opens new window)
  • 指南

    • 快速上手
    • 模块介绍
    • 项目初衷与诞生
  • core

    • Opp
    • Sf
      • isEmpty
      • isPresent
      • ofColl
      • mayColl
      • ofStr
      • mayStr
      • let
      • mayLet
      • also
      • mayAlso
      • takeIf
      • mayTakeIf
      • takeUnless
      • mayTakeUnless
      • is
      • require
      • orThrow
      • or
      • orGet
      • 测试用例地址
    • TreeHelper
    • LighHight
    • LambdaHelper
    • Steam
    • Maps
    • ReflectHelper
    • BeanHelper
  • plugin

    • DataBase
    • One
    • Many
    • OneToOne
    • OneToMany
    • QueryCondition
    • safe-mode
  • 配置

  • 指南
  • core
臧臧
2023-04-18
目录

Sf

借鉴了KT的作用域函数

# isEmpty

判断是否为null

# isPresent

判断是否存在值

# ofColl

将参数(集合)包裹到Sf中无论是否为null

Sf.ofColl(Arrays.asList(null, null, null)).isEmpty();
out --> false

# mayColl

将集合包裹到Sf中自动过滤掉元素为null的

Sf.mayColl(Arrays.asList(null, null, null)).isEmpty();
out --> true

# ofStr

将传入字符串包裹到Sf中无论是否为null

Sf.ofStr("  ").isEmpty();
out --> false

# mayStr

将传入字符串包裹到Sf中如果为空字符串则过滤掉

Sf.mayStr("  ").isEmpty()

# let

对当前Sf中所包裹对象进行操作并返回值,返回值会包裹到Sf中替换之前的元素,用于操作非null,否则抛出NPE如为了保证安全操作可以使用mayLet

Sf.ofStr(" ").let(String::length).get();
out --> 1

# mayLet

对当前Sf中所包裹对象进行操作并返回值,返回值会包裹到Sf中替换之前的元素,如果所操作对象为null则不进行操作

Sf.mayStr(null).mayLet(a -> a.toString().length()).isEmpty();
out --> true

# also

对当前Sf中所包裹对象进行消费操作无返回值,用于操作非null,否则抛出NPE如为了保证安全操作可以使用mayAlso

AtomicReference<String> name = new AtomicReference<>(Z_VERIFY_NAME);
Sf.of(null).also(a -> name.set("ZVerify"));
// 此时原子引用类里的元素为字符串ZVerify

# mayAlso

对当前Sf中所包裹对象进行消费操作无返回值,如果所操作对象为null则不进行操作

AtomicReference<String> name = new AtomicReference<>(Z_VERIFY_NAME);
Sf.of(null).mayAlso(a -> name.set("ZVerify"));
// 此时原子引用类里的元素为常量Z_VERIFY_NAME

# takeIf

对当前Sf中所包裹对象进行操作并返回一个布尔值,如果当前返回值为false则将Sf中包裹的数据置为null返回true则不变,用于操作非null,否则抛出NPE如为了保证安全操作可以使用mayTakeIf

AtomicReference<String> name = new AtomicReference<>(Z_VERIFY_NAME);
Sf.of(name).takeIf((a) -> false).mayAlso(a -> a.set("ZVerify"));
// 此时原子引用类里的元素为常量Z_VERIFY_NAME

# mayTakeIf

对当前Sf中所包裹对象进行操作并返回一个布尔值,如果当前返回值为false则将Sf中包裹的数据置为null返回true则不变,如果所操作对象为null则不进行操作

AtomicReference<String> name = new AtomicReference<>(Z_VERIFY_NAME);
Sf.of(name).takeIf((a) -> true).mayAlso(a -> a.set("ZVerify"));
// 此时原子引用类里的元素为字符串ZVerify

# takeUnless

与takeIf相反

# mayTakeUnless

与mayTakeIf相反

# is

对当前Sf中所包裹对象进行操作返回一个布尔值如果所操作对象不等于null并且则判断所传入操作是否返回为true,如果等于null则返回false,如果操作不为null,那么操作返回true则为true,返回false则为false

AtomicReference<String> name = new AtomicReference<>(Z_VERIFY_NAME);
Sf.of(name.get()).is(Objects::nonNull);
out --> true

# require

获取当前Sf对象如果当前Sf中所包裹元素为null则抛出指定异常,不为null则返回Sf对象(中间操作)

AtomicReference<String> name = new AtomicReference<>(null);
Sf<String> stringSf = Sf.ofStr(name.get());
stringSf.require(IllegalStateException::new)
// 会抛出IllegalStateException,默认为NoSuchElementException

# orThrow

获取当前Sf中包裹对象如果当前Sf中所包裹元素为null则抛出指定异常,不为null则返回Sf中包裹对象

AtomicReference<String> name = new AtomicReference<>(null);
Sf<String> stringSf = Sf.ofStr(name.get());
stringSf.require(IllegalStateException::new)
// 会抛出IllegalStateException,默认为NoSuchElementException

# or

中间生产者操作,如果当前Sf中所包裹元素为null则拿到生产者所生产对象包裹到Sf中替换原有值,不为null则返回Sf本身

AtomicReference<String> name = new AtomicReference<>(null);
Sf.ofStr(name.get()).or(() -> Sf.ofStr(Z_VERIFY_NAME));
// 此时原子引用类里的元素为常量Z_VERIFY_NAME

# orGet

生产者操作,获取当前Sf中包裹对象如果当前Sf中所包裹元素为null则拿到生产者所生产对象包裹到Sf中替换原有值,不为null则返回Sf所包裹对象

AtomicReference<String> name = new AtomicReference<>(null);
Sf.ofStr(name.get()).orGet(() -> Z_VERIFY_NAME);
// 此时原子引用类里的元素为常量Z_VERIFY_NAME

# 测试用例地址

SfTest (opens new window)

上次更新: 2024/03/29, 09:17:32
Opp
TreeHelper

← Opp TreeHelper→

Theme by Vdoing | Copyright © 2023-2024 阿超 | Apache License, Version 2.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式