guava经常使用

教程:java

http://www.yiibai.com/guava/yii

http://ifeve.com/google-guava/工具

optional

注意java8一样提供optional,区分ui

意义:google

  • 使用Optional除了赋予null语义,增长了可读性,最大的优势在于它是一种傻瓜式的防御。
  • Optional 迫使你积极思考引用缺失的状况 由于你必须显式地从Optional获取引用。
  • 如同输入参数,方法的返回值也多是null。和其余人同样,你绝对极可能会忘记别人写的方法method(a,b)会返回一个null,就好像当你实现method(a,b)时,也极可能忘记输入参数a能够为null。将方法的返回类型指定为Optional,方法的参数设置为Optional,也能够迫使调用者思考返回的引用缺失的情形。
  • isPresent方法能够判断实例是否为null,防止NullPointException发生;
  • 若引用为null则快速失败,若是有null值存在即刻报错而不是只要上下文接受处理null值就默认使用null值继续运行

方法:spa

1.经常使用静态方法:code

Optional.of(T) 根据给定的引用建立Optional实例,若T为null,则抛出NullPointerException
Optional.absent() 建立一个不包含任何引用的Optional实例
Optional.fromNullable(T) 根据给定的引用建立Optional实例,若T为null,则建立一个Optional.absent

2.实例方法:blog

boolean isPresent() 若是Optional实例持有者包含一个非null的实例,则返回True,不然返回false
T get() 若是Optional实例持有者包含一个非null的实例,则返回非null的实例,不然抛IllegalStateException
T or(T defaultValue) 若是Optional实例持有者包含一个非null的实例,则返回非null的实例,不然返回这个defaultValue
T orNull() 若是Optional实例持有者包含一个非null的实例,则返回非null的实例,不然返回null
Set<T> asSet() 若是Optional实例持有者包含一个非null的实例,则返回一个只有一个元素的不可变Set,不然返回一个空Set

public class TestGuava {

  public static void main(String[] args) {
    Optional<Integer> a = Optional.of(15);
    Optional<Integer> b = Optional.absent();
    System.out.println(sum(a,b));

  }
  public static int sum(Optional<Integer> a,Optional<Integer> b){
    if(a.isPresent()&&b.isPresent()){
      return a.get()+b.get();
    }
    return 0;
  }
}

 

 

字符串工具教程

Joinerip

import java.util.Arrays;
import com.google.common.base.Joiner;

public class GuavaTester {
   public static void main(String args[]){
      GuavaTester tester = new GuavaTester();
      tester.testJoiner();    
   }

   private void testJoiner(){
      System.out.println(Joiner.on(",")
         .skipNulls()
         .join(Arrays.asList(1,2,3,4,5,null,6)));
   }
}

 

Splitter

import com.google.common.base.Splitter;

public class GuavaTester {
   public static void main(String args[]){
      GuavaTester tester = new GuavaTester();
      tester.testSplitter();
   }

   private void testSplitter(){
      System.out.println(Splitter.on(',')
         .trimResults()
         .omitEmptyStrings()
         .split("the ,quick, , brown         , fox,              jumps, over, the, lazy, little dog."));
   }
}

 LoadingCache

提供一种localcache的实现方案

相关文章
相关标签/搜索