杂项-Maven-guava:guava

ylbtech-杂项-Maven-guava:guava
Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供 用于集合,缓存支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法
1.返回顶部
1、

Guava 是什么?

Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法。

Guava的好处

  • 标准化 - Guava库是由谷歌托管。
  • 高效 - 可靠,快速和有效的扩展JAVA标准库
  • 优化 -Guava库经过高度的优化。

函数式编程 -增加JAVA功能和处理能力。

实用程序 - 提供了经常需要在应用程序开发的许多实用程序类。

验证 -提供标准的故障安全验证机制。

最佳实践 - 强调最佳的做法。

考虑下面的代码片段。

public class GuavaTester {
   public static void main(String args[]){
      GuavaTester guavaTester = new GuavaTester();
      Integer a =  null;
      Integer b =  new Integer(10);
      System.out.println(guavaTester.sum(a,b));
   }

   public Integer sum(Integer a, Integer b){
      return a + b;
   }    
}

运行程序,看到如下结果。

Exception in thread "main" java.lang.NullPointerException
    at GuavaTester.sum(GuavaTester.java:13)
    at GuavaTester.main(GuavaTester.java:9)

以下是该代码的问题。

sum() 不采取任何的保护传递的参数为null。

调用函数也并不担心传递一个null 到sum()方法而产生意外。

当程序运行时,NullPointerException异常发生。

为了避免上述问题,null检查要在每个这样存在问题地方。

让我们来看看使用Optional,Guava 提供实用工具类来标准化方式解决上述问题。

import com.google.common.base.Optional;

public class GuavaTester {
   public static void main(String args[]){
      GuavaTester guavaTester = new GuavaTester();

      Integer invalidInput = null;
      Optional<Integer> a =  Optional.of(invalidInput);
      Optional<Integer> b =  Optional.of(new Integer(10));
      System.out.println(guavaTester.sum(a,b));
   }

   public Integer sum(Optional<Integer> a, Optional<Integer> b){
      return a.get() + b.get();
   }    
}

运行程序,看到结果如下。

Exception in thread "main" java.lang.NullPointerException
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)
    at com.google.common.base.Optional.of(Optional.java:85)
    at GuavaTester.main(GuavaTester.java:8)

 

Java

让我们来了解上述程序的一些重要概念。

Optional - 实用类,使代码使用null能够正常。

Optional.of - 返回要用作参数Optional类的实例。检查传递的值是否为null。

Optional.get - 获取输入存储在Optional 类的值。

使用Optional类,可以方便地查看调用者方法来传递参数正确与否。

2、
2.返回顶部
 
3.返回顶部
 
4.返回顶部
 
5.返回顶部
1、
2、中文教程
3、
 
6.返回顶部
 
warn作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/storebook/p/11023692.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值