教程:java
http://www.yiibai.com/guava/yii
http://ifeve.com/google-guava/工具
注意java8一樣提供optional,區分ui
意義:google
方法: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的實現方案