Google Guava处理null

Google Guava提供了一个简单的处理"null"方式

 

maven 依赖

<dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>14.0.1</version>
    </dependency>

 

1、处理 null 使用if(){}else{}

import java.util.LinkedList;
import java.util.List;
 
public class App 
{
    public static void main( String[] args )
    {
        List<String> list = new LinkedList<String>();
        list.add("A");
        list.add(null);
        list.add("C");
        list.add(null);
        list.add("E");
        list.add("");
        String value;
        for(int i = 0 ; i < list.size(); i++){
            value = list.get(i);
            if(value == null || "".equals(value)){
                System.out.println("index: "+i+" - value: no value");
            }else{
                System.out.println("index: "+i+" - value: "+value);
	}
        }
    }
 
}

 

2、使用Guava

Guava提供了一个Optional类,可以对空对象进行封装

 

import java.util.LinkedList;
import java.util.List;
import com.google.common.base.Optional;
import static com.google.common.base.Strings.emptyToNull;
 
public class App 
{
    public static void main( String[] args )
    {
        List<String> list = new LinkedList<String>();
        list.add("A");
        list.add(null);
        list.add("C");
        list.add(null);
        list.add("E");
        list.add("");
        Optional<String> possible;
        for(int i = 0 ; i < list.size(); i++){
            possible = Optional.fromNullable(emptyToNull(list.get(i)));
            System.out.println("index: "+i+" -  value: "+possible.or("no value"));
        }
    }
   
}

 

输出:

index: 0 -  value: A
index: 1 -  value: no value
index: 2 -  value: C
index: 3 -  value: no value
index: 4 -  value: E
index: 5 -  value: no value

更多的方式创建Optional实例

如果我们知道自己要封装的对象是一个空对象,可以用

Optional.absent();

如果封装的对象是一个非空对象,则可以用

Optional.of(obj);

如果不知道对象是否为空,就这样创建创建

Optional.fromNullable(obj);

 

 

 

基于 STM32 的便携式肌电信号采集与疲劳度评估系统设计与实现 本系统以 STM32 单片机为核心控制器,通过肌电电极采集人体骨骼肌表面的 sEMG 信号,经仪表放大、滤波、AD 采样后送入 MCU 进行时域 / 频域特征提取,利用 RMS(均方根)、MPF(中位频率)、MF(平均频率)等指标实时评估肌肉疲劳状态,最终通过 OLED 显示疲劳等级,并支持蓝牙上传至上位机。 阅读详情

相关推荐

如何选择StandardScaler、MinMaxScaler和RobustScaler做标准化的对比解释和示例代码

选择合适的标准化方法取决于数据的特点和需求。如果数据分布接近正态分布且无异常值,可以使用。如果需要将数据映射到特定范围内并保持相对关系,可以使用。如果数据中存在异常值或离群点,可以使用进行鲁棒标准化。在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,StandardScaler表现更好(避免不同量纲对方差、协方差计算的影响);在不涉及距离度量、协方差、数据不符合正态分布、异常值较少的时候,可使用MinMaxScaler。

qq_36001281的博客 4940

Google Guava 工具集__1__Optional对象设计 使用和避免 Null

/**  * 在Java世界里,解决空引用问题常见的一种办法是,使用Null Object模式。  * 这样的话,在“没有什么”的情况下,就返回Null Object,客户端代码就不用判断是否为空了。  * 但是,这种做法也有一些问题。  * 首先,我们肯定要为Null Object编写代码,而且,如果我们想大规模应用这个模式,我们要为几乎每个类编写Null Object。  *  

2.wa 2599

超详细版!Obsidian+Claude+Skills+云同步,打造智能 AI 知识库

本文介绍如何搭建高效的AI知识管理系统,将Obsidian笔记工具与ClaudeAI助手深度整合。通过ClaudeCode安装配置、ObsidianSkills插件添加和坚果云同步设置,实现本地存储安全性与云端便捷性的完美结合。该系统支持智能笔记整理、知识图谱可视化、智能搜索问答和内容创作辅助等功能,使静态笔记转变为能自动分析关联、处理复杂结构的"活"知识库。详细步骤包括工具准备、环境配置、插件安装和云同步设置

2301_79998006的博客 1080

Guava Cache之返回值为null抛出异常解决方案

问题描述描述:对于方法“V get(key, loader) throws ExecutionException”loader的返回值不能为null,否则会抛出异常,文档描述如下: Warning: as with {@link CacheLoader#load}, {@code loader} must not return * {@code null}; it may eithe

04stone37 1万+

微信小程序如何转云开发

小程序转云开发

zhangxiaobai___的博客 3914

LangChain实战:Plan and Execute代理在智能预算规划中的应用

本文详细介绍了如何利用LangChain框架中的Plan and Execute代理实现智能预算规划。通过拆解复杂财务问题、调用多工具链协作,该代理能自动完成从个人月度预算到家庭年度综合预算的智能规划,并具备消费习惯学习和多目标优化等进阶功能,帮助用户实现精准财务管理和决策优化。

weixin_42530732的博客 382

探索 Guava Optional:让 null 处理更优雅

探索 Guava Optional:让 null 处理更优雅

一起coding,一起嗨。 852

Codex 100个真实案例 - 用AI做股票K线分析工具(技术指标全自动)

本案例将用 Codex 从零搭建一个完整的股票 K 线分析工具。通过自然语言驱动,我们让 AI 自动完成股票数据获取(akshare)、K 线图绘制(mplfinance + ECharts)、技术指标计算(MA/EMA/MACD/RSI/KDJ/布林带)、买卖信号提示(金叉/死叉、超买超卖)、多股对比分析、Web 可视化界面(Flask + ECharts)、PDF 报告生成以及定时监控邮件推送等全套功能。全程用自然语言指令驱动 Codex,零手写代码实现专业级量化分析平台!

yueyeguzhuo的专栏 872

java guava null_我应该使用Java8/Guava对于可能返回null的每个方法可选吗?

那么什么是可选的错误?我们面临的问题是:JDK 8可选对象是否会去除空引用?答案是一个强调的没有!所以,诋毁者立刻质疑它的价值问:那么什么是好的,我们不能通过其他手段已经做了?与像SML或Haskell这样从来没有空引用概念的函数语言不同,在Java中,我们不能简单地去掉历史上存在的空引用。这将继续存在,并且他们可以有其正确的用途(只提一个例子:three-valued logic)。我怀疑可选类...

weixin_39626409的博客 177

YOLOv4目标检测算法——通俗易懂的解析

YOLOv4目标检测算法——通俗易懂的解析

chase 7135

PointNet++改进策略目录

后续我将如何使用文章中创新点加入的PointNet++中代码实现部分进行更新。

u012901740的博客 2196

Guava 的 API 对字符串去空格,去空值,list去空值null

String a = ",abcd,,efg,l"; System.out.println(Splitter.on(",").trimResults().omitEmptyStrings().splitToList(a)); // 依次 join 多个字符串,Joiner 是 Guava 提供的 API Joiner joiner = Joiner.on(",").skipNulls(); String result = joiner.join("hello",..

rocrunwang的博客 1349

SAP S/4HANA Public Cloud 的 Development Tenant 深度解析

在传统的 SAP On-Premise 版本中,企业通常拥有完整的开发、测试、生产环境,开发人员可以直接访问 ABAP 代码,进行深度定制。然而,S/4HANA Public Cloud 采用了标准化的 SaaS 模型,不允许用户直接修改核心代码。因此,SAP 提供了一种新的开发方式,即 Development Tenant,允许企业在不破坏核心系统稳定性的前提下,实现个性化扩展。Development Tenant 主要用于 SAP S/4HANA Public Cloud 的扩展开发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 849

[Google Guava] 1.1-使用和避免null

[Google Guava] 1.1-使用和避免null 原文链接 译文链接 译者: 沈义扬    Doug Lea 说,“Null 真糟糕。”   当Sir C. A. R. Hoare 使用了null引用后说,”使用它导致了十亿美金的错误。” 轻率地使用null可能会导致很多令人惊愕的问题。通过学习Google底层代码库,我们发现95%的集合类不接受null值作为元

一个Java菜鸟(同微信公众号) 779

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

吐血整理的Google Guava

一、概述   Guava 是由Google开发的基于Java的开源库,包含许多Google核心库,它有助于最佳编码实践,并有助于减少编码错误。它为集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等提供实用程序方法。 <!-- https://mvn

chuyouyinghe的专栏 2874

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Google Guava简介

瓜娃(Guava)是一款基于开源JAVA内容的库,也是Google很多项目在使用的扩展库。主要为了方便编码,并有效减少编码错误。有着多种供用于集合、缓存、并发、常见注解、字符串处理、I/O与验证的方法。下面介绍几种简单的功能。Optional类com.google.common.base.Optional 用于处理包含非空对象的不可变对象,也就是在一些无法赋值,但对象还是为null的时候进行处理,也

Juses_331的博客 1430

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Google Guava学习(3)-Guava Ordering类

1. 功能:排序 2. 代码: package com.example.google.guava.demo.clazz; import com.google.common.collect.Ordering; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * *

Jalen备忘录 398

Guava中Null的处理方式

使用与避免NULL值 “Null sucks.” -Doug Lea “I call it my billion-dollar mistake.” - Sir C. A. R. Hoare, on his invention of the null reference 粗心使用null可能会导致各种错误。Google代码库大约95%的集合类中不支持存储null值,...

forrest420的专栏 1709

Guava User Guide

The Guava project contains several of Google's core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string pr...

weixin_30256901的博客 144

Google Guava与基本工具操作相关的类

文章目录1.[使用和避免使用null](https://github.com/google/guava/wiki/UsingAndAvoidingNullExplained)1.1Optional1.1.1创建Optional1.1.2查询方法1.1.3重点是什么?1.2便利方法1.3使用示例2.[前置条件](https://github.com/google/guava/wiki/Precond...

Life is for sharing的博客 857

Google Guava官方教程 使用和避免null

轻率地使用null可能会导致很多令人惊愕的问题。通过学习Google底层代码库,我们发现95%的集合类不接受null值作为元素。我们认为, 相比默默地接受null,使用快速失败操作拒绝null值对开发者更有帮助。...

weixin_54518855的博客 442

Guava 学习

Guava 学习 一、概述 Guava是由Google开发的基于Java的开源库,包含许多Google核心库,它有助于最佳编码实践,并有助于减少编码错误。它为集合[collections]、缓存[caching]、原生类型支持[primitives support]、并发库[concurrency libraries]、通用注解[common annotations]、字符串处理[string processing]、I/O等等提供实用程序方法。 <!-- https://mvnrepository.

weixin_43527947的博客 825

Guava入门~Joiner

import java.io.File; import java.io.IOException; import java.io.Writer; import java.util.Map; import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.Charsets; import com.google.common.base.Joiner; import com.google.common.

小强快跑~~ 295

Guava手册

引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有

小熊波波的专栏 978

java guava null_guava学习笔记系列 - 使用和避免null

基本的工具(更愉快的使用JAVA语言)使用和避免null个人博客http://www.taociabc.com/wordpress/2018/01/06/guava%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E7%B3%BB%E5%88%97-%E4%BD%BF%E7%94%A8%E5%92%8C%E9%81%BF%E5%85%8Dnull/详细的英文原文:https...

weixin_42514736的博客 215

跟着文档从零学习Google Guava

跟着文档从零学习Google Guava

ShayeL的博客 417
上一篇: CSS 定位属性
下一篇: java 证书的加密与解密
「已注销」
博客等级 码龄16年 3粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值