`
SwordShadow
  • 浏览: 271031 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Google Guava处理null

    博客分类:
  • java
阅读更多

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);

 

 

 

分享到:
评论
1 楼 ron.luo 2014-08-28  
还是没感觉到Google guava有什么优势。。。

相关推荐

    不加密Google Guava视频教程.txt

    ├─Google Guava 第01讲-Joiner详细介绍以及...├─Google Guava 第33讲-Guava Cache之NullValue,Removal通知,Refresh,预加载等.wmv ├─Google Guava 第34讲-Guava Cache之RecordStats,CacheBuilderSpec详解.wmv

    google guava

    Google Guava是一个由Google开发并维护的开源Java库,它为Java开发者提供了许多实用的工具类和集合框架,极大地简化了常见的编程任务。这个框架包含了多个模块,如基础(base)、缓存(cache)、I/O(io)以及并发...

    com.google.guava_1.6.0.jar.zip

    本次我们将聚焦于Guava中的`Ints`模块,通过分析`com.google.guava_1.6.0.jar.zip`这个压缩包,深入了解Guava如何处理整型数据。 `Ints`模块是Guava库中专门用于处理`int`类型数据的部分,它包含了丰富的静态方法,...

    Google Guava 30.1.1常用类介绍及实践代码

    Google Guava 是一个由 Google 开发的 Java 库,它提供了许多基础工具,包括集合、缓存、原生类型支持、并发库、字符串处理、I/O 等等。在版本 30.1.1 中,Guava 继续提供了一系列强大且实用的类,帮助开发者更高效...

    Getting Started with Google Guava

    8. **Optional 类**:Guava引入了`Optional`类,用于表示可能为null的值,避免了空指针异常,提高了代码的健壮性。 9. **事件监听**:Guava的`EventBus`是一个简单的发布-订阅事件总线,用于组件间的通信,使得松...

    Google的guava实战

    Google的Guava是Java开发中一个非常强大的工具库,它由Google工程师开发并维护,提供了一套丰富的Java实用工具集合。Guava的目的是为了简化Java编程,减少代码冗余和提升代码质量。Guava中包含的工具种类繁多,涵盖...

    Getting Started with Google Guava英文版

    ### 开始使用Google Guava #### 一、Google Guava简介与重要性 Google Guava是Google开发的一个Java核心库的集合,它为开发者提供了一系列高效、实用且易于使用的工具和功能,帮助开发者编写出更高质量、更高效率...

    Guava入门指南培训PPT

    Guava是Google推出的一款开源核心类库,它为Java开发者提供了丰富的工具类和实用工具集合。Guava旨在提高编程效率的同时确保代码的高质量和稳定性。它包含了大量针对日常开发过程中常见问题的解决方案。 **特点**:...

    guava-21.0-rc2 、guava-21.0-rc2-javadoc 、guava-21.0-rc2-sources

    Guava是Google开发的一个核心库,它包含许多Java开发中常用和实用的工具类,极大地提高了开发效率。这里提到的"guava-21.0-rc2"、"guava-21.0-rc2-javadoc"和"guava-21.0-rc2-sources"分别代表了Guava库的21.0 ...

    Guava学习-----弱鸡晋级之路

    Guava 是 Google 开源的一个 Java 库,它包含了大量的实用工具类,可以帮助开发者更高效地编写代码。这个库的设计目标是提高代码的可读性和可维护性,减少重复的样板代码,同时也提供了一些高级的数据结构和算法。让...

    guava学习知识点

    Guava 是 Google 开源的一个 Java 工具包,包含了丰富的工具类和库,极大地扩展了 Java 的功能。这里我们详细探讨一下 Guava 的主要知识点。 1. **RateLimiter 和 Semaphore 的区别** - `RateLimiter` 主要用于...

    Guava 16.0 API (CHM格式)

    Ranges: Guava 一个强大的 API,提供 Comparable 类型的范围处理, 包括连续和离散的情况。  九. I/O: 简化 I/O 操作, 特别是对 I/O 流和文件的操作, for Java 5 and 6.  十. Hashing: 提供比 Object.hashCode...

    guava-use:使用谷歌guava工具包

    标题中的“guava-use:使用谷歌guava工具包”表明我们即将探讨的是Google提供的Guava库,这是一个广泛使用的Java库,包含了许多实用的工具类和集合框架的扩展。Guava库旨在提高Java开发的效率,提供了如缓存、并发...

    Guava-CacheDemo.rar

    Guava Cache是Google Guava库中的一个功能强大的本地缓存实现,它为Java开发者提供了高效、易用的缓存解决方案。Guava Cache的设计目标是为了帮助应用程序在内存中存储经常访问的数据,以减少对远程服务或者数据库的...

    guava使用实例

    Guava是Google开发的一个Java库,它提供了许多高级功能,如集合、缓存、并发工具、I/O操作、字符串处理、散列算法等。在本篇文章中,我们将深入探讨Guava在实际应用中的使用实例,包括文件操作、字符串操作、基本...

    Guava使用培训教程

    Guava是Google推出的一款Java核心类库,旨在通过添加一系列经过充分测试且高度实用的工具集来优化Java开发体验。该库包含了集合、缓存、原生类型支持、并发库、常见注解、字符串处理、I/O等多方面的功能,能够帮助...

    guava学习笔记

    Guava是由Google开发的一个开源Java工具包,它提供了一系列方便的工具类来简化常见编程任务。Guava项目最初是为了解决Google内部项目中常见的问题,但随着其通用性和强大功能的展现,它逐渐被广泛接受和应用于Java...

    guava中文文档,PDF+word双版本

    Guava是Google开发的一个强大的Java库,它包含了各种集合框架、缓存机制、并发工具、字符串处理函数以及I/O工具等。Guava的目标是提供一套现代的、实用的、高性能的Java工具,使得开发者能够编写出更加简洁、高效且...

    Guava-并行编程Futures详解.pdf

    在Java并行编程中,Google的Guava库提供了一套强大的工具,极大地丰富了Future接口的功能,尤其是ListenableFuture接口及其相关的扩展。这些工具使得异步计算的管理和处理变得更加灵活和高效。 ListenableFuture是...

Global site tag (gtag.js) - Google Analytics