Google Guava (14.0) Part2

Function

 public interface Function<F,T> {
     T apply (F input); 
     boolean equals(Object object);
 }

forMap

New Function to help find value by given key in a map

Function<String, State> lookup = Function.forMap(stateMap);
lookup.apply("NY");

compose

This method takes two Function instance as arguments, firstly invokes the latter one, then the return value is used as a parameter to the apply method of the former function and return a composition Function of the two.

public class StateToCityString implements Function<State, String> {
    @override
    public String apply(State input){
        return Joiner.on(",").join(input.getMainCities());
    }
}
Function stateFun = new StateToCityString();
Function composedFun = Function.compose(stateFun, lookup);
String result = compoeseFun.apply("NY");

Predicate

Functional cousin to the Function interface. While Function interface is used to transform objects, the Predicate interface is used to filter objects.
Able to work with multi-Boolean conditions, chaining instance with and or not.

Predicate chainPre = Predicate.and/or(pre1, pre2);
Predicate.and/or(Iterable<Predicate<T>>);
Predicate.and/or(Predicate<T> ...predicates);

Predicate inversePre = Predicate.not(pre1);
Predicate composePre = Predicate.compose(pre1, fun);

Supplier

When get return the same instance of given type or a new instance with each invocation, abstract the complexity and details of creating an object.

public interface Supplier<T> {
    T get();
}

Singleton: the first call passed to the delegate Supplier instance, create and return the wrapping Supplier object, which caches the instance before returning to caller. All subsequent calls to the get method return the cached instance.

Supplier<T> wrapped = Suppliers.memoize(supplier);
Supplier<T> wrapped = Suppliers.memoizeWithExpiration(supplier, duration, timeUnit);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值