程序员人生 网站导航

Guava库介绍

栏目:php教程时间:2015-06-18 09:11:52

1、甚么是Guava

1)Guava库是1个合适很多Java项目的通用工具库
2)Guava工具库中包括了:集合Collection、并发Concurrency、原语Primitive、反射Reflection、比较Comparison、I/O操作、哈希Hash、网络Networking、字符串String、数学函数Math、缓存Caching、内存中的发布/定阅……和各种级别的数据类型
3)需要JDK 6以上版本

2、函数接口

在深入Guava库之前,我们先了解其函数接口,了解这些函数接口有助于我们更好地掌握Guava库。

函数接口:

1)函数接口是定义了单个方法的接口
2)函数接口包括了尽人皆知的单个抽象方法(SAM,Single Abstract Method)
3)函数接口为Java 8 Lambda表达式提供了基础
函数接口是很酷的:你指定任何1个接口都可以作为方法参数,还可以在Java 8中传递Lambda表达式
4)函数接口可以被当作回调对象

3、函数接口的1些例子

下面的例子是Java 8的函数接口。

1、函数接口带单个方法参数

@FunctionalInterface{ public boolean check(Order o); }

接着我们可以创建Lambda表达式,使用上面的函数接口。

IOrder newOrder = (Order o) -> o.getStatus().equals("NEW");

IOrder newOrder = (o) ->o.getStatus().equals("NEW");
说明:

1)表达式右侧是1个简单的检查方法的内容――检查传递到Order对象的状态。
2)当创建了大量能表达需求行动或功能的Lambda表达式后,Lambda表达式的威力才能体现出来。

2、再举个例子,紧接上面的例子,找出大额定单。

// Lambda表达式找出大额定单 IOrder bigOrderLambda = (Order o) -> o.getQuantity() > 10000000;
// Lambda表达式找出新的大额定单 ITrade issuerBigNewTradeLambda = (o) -> { return o.getIssuer().equals("Honda") && o.getQuantity() > 10000000 && o.getStatus().equals("NEW"); }

4、总结

Google Guava库在”com.google.common.base”中提供了几个很有用的SAM,包括:
1)Function
指定了1个接收“T”类型实例并返回“R”类型实例的方法
2)Predicate
指定了1个传递“T”类型实例并返回布尔类型的方法
3)Supplier
指定了1个能够返回值的方法

还需要知道,这些SAM虽然诞生于Guava库,但是也加入了Java 8。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐