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);
相关推荐
├─Google Guava 第01讲-Joiner详细介绍以及...├─Google Guava 第33讲-Guava Cache之NullValue,Removal通知,Refresh,预加载等.wmv ├─Google Guava 第34讲-Guava Cache之RecordStats,CacheBuilderSpec详解.wmv
Google Guava是一个由Google开发并维护的开源Java库,它为Java开发者提供了许多实用的工具类和集合框架,极大地简化了常见的编程任务。这个框架包含了多个模块,如基础(base)、缓存(cache)、I/O(io)以及并发...
本次我们将聚焦于Guava中的`Ints`模块,通过分析`com.google.guava_1.6.0.jar.zip`这个压缩包,深入了解Guava如何处理整型数据。 `Ints`模块是Guava库中专门用于处理`int`类型数据的部分,它包含了丰富的静态方法,...
Google Guava 是一个由 Google 开发的 Java 库,它提供了许多基础工具,包括集合、缓存、原生类型支持、并发库、字符串处理、I/O 等等。在版本 30.1.1 中,Guava 继续提供了一系列强大且实用的类,帮助开发者更高效...
8. **Optional 类**:Guava引入了`Optional`类,用于表示可能为null的值,避免了空指针异常,提高了代码的健壮性。 9. **事件监听**:Guava的`EventBus`是一个简单的发布-订阅事件总线,用于组件间的通信,使得松...
Google的Guava是Java开发中一个非常强大的工具库,它由Google工程师开发并维护,提供了一套丰富的Java实用工具集合。Guava的目的是为了简化Java编程,减少代码冗余和提升代码质量。Guava中包含的工具种类繁多,涵盖...
### 开始使用Google Guava #### 一、Google Guava简介与重要性 Google Guava是Google开发的一个Java核心库的集合,它为开发者提供了一系列高效、实用且易于使用的工具和功能,帮助开发者编写出更高质量、更高效率...
Guava是Google推出的一款开源核心类库,它为Java开发者提供了丰富的工具类和实用工具集合。Guava旨在提高编程效率的同时确保代码的高质量和稳定性。它包含了大量针对日常开发过程中常见问题的解决方案。 **特点**:...
Guava是Google开发的一个核心库,它包含许多Java开发中常用和实用的工具类,极大地提高了开发效率。这里提到的"guava-21.0-rc2"、"guava-21.0-rc2-javadoc"和"guava-21.0-rc2-sources"分别代表了Guava库的21.0 ...
Guava 是 Google 开源的一个 Java 库,它包含了大量的实用工具类,可以帮助开发者更高效地编写代码。这个库的设计目标是提高代码的可读性和可维护性,减少重复的样板代码,同时也提供了一些高级的数据结构和算法。让...
Guava 是 Google 开源的一个 Java 工具包,包含了丰富的工具类和库,极大地扩展了 Java 的功能。这里我们详细探讨一下 Guava 的主要知识点。 1. **RateLimiter 和 Semaphore 的区别** - `RateLimiter` 主要用于...
Ranges: Guava 一个强大的 API,提供 Comparable 类型的范围处理, 包括连续和离散的情况。 九. I/O: 简化 I/O 操作, 特别是对 I/O 流和文件的操作, for Java 5 and 6. 十. Hashing: 提供比 Object.hashCode...
标题中的“guava-use:使用谷歌guava工具包”表明我们即将探讨的是Google提供的Guava库,这是一个广泛使用的Java库,包含了许多实用的工具类和集合框架的扩展。Guava库旨在提高Java开发的效率,提供了如缓存、并发...
Guava Cache是Google Guava库中的一个功能强大的本地缓存实现,它为Java开发者提供了高效、易用的缓存解决方案。Guava Cache的设计目标是为了帮助应用程序在内存中存储经常访问的数据,以减少对远程服务或者数据库的...
Guava是Google开发的一个Java库,它提供了许多高级功能,如集合、缓存、并发工具、I/O操作、字符串处理、散列算法等。在本篇文章中,我们将深入探讨Guava在实际应用中的使用实例,包括文件操作、字符串操作、基本...
Guava是Google推出的一款Java核心类库,旨在通过添加一系列经过充分测试且高度实用的工具集来优化Java开发体验。该库包含了集合、缓存、原生类型支持、并发库、常见注解、字符串处理、I/O等多方面的功能,能够帮助...
Guava是由Google开发的一个开源Java工具包,它提供了一系列方便的工具类来简化常见编程任务。Guava项目最初是为了解决Google内部项目中常见的问题,但随着其通用性和强大功能的展现,它逐渐被广泛接受和应用于Java...
Guava是Google开发的一个强大的Java库,它包含了各种集合框架、缓存机制、并发工具、字符串处理函数以及I/O工具等。Guava的目标是提供一套现代的、实用的、高性能的Java工具,使得开发者能够编写出更加简洁、高效且...
在Java并行编程中,Google的Guava库提供了一套强大的工具,极大地丰富了Future接口的功能,尤其是ListenableFuture接口及其相关的扩展。这些工具使得异步计算的管理和处理变得更加灵活和高效。 ListenableFuture是...