Google Guava学习(1)-Guava Optional类
2017-10-18 16:05
453 查看
1. 功能:null处理,避免NPE
2. 程序示例:
3. 输出结果:
附录:
参考:http://www.yiibai.com/guava/guava_optional_class.html
2. 程序示例:
package com.example.google.guava.demo.clazz; import com.google.common.base.Optional; /** * <p> * <code>OptionalTest</code> * </p> * Description:输出结果 * > First parameter is present: false * > Second parameter is present: true * > 10 * * @author Mcchu * @date 2017/10/18 15:02 */ public class OptionalTest { public static void main(String[] args) { OptionalTest test = new OptionalTest(); Integer value1 = null; Integer value2 = 10; // 允许传null Optional<Integer> a1 = Optional.fromNullable(value1); //输出:Optional.absent() //Optional<Integer> a2 = Optional.fromNullable(value2); //输出:Optional.of(10) // java.util.Optional<T> 是java8新增 //java.util.Optional<Integer> b1 = java.util.Optional.ofNullable(value1); //输出:Optional.empty //java.util.Optional<Integer> b2 = java.util.Optional.ofNullable(value2); //输出:Optional[10] // 传null抛NPE //Optional<Integer> c1 = Optional.of(value1); //输出:java.lang.NullPointerException Optional<Integer> c2 = Optional.of(value2); //输出:Optional.of(10) Integer result = sum(a1,c2); System.out.println(result); //输出:10 } private static Integer sum(Optional<Integer> a,Optional<Integer> b){ // 判断a、b是否出现(英文翻译:present:出现;absent:未出现,缺席) System.out.println("First parameter is present: " + a.isPresent()); //输出:false System.out.println("Second parameter is present: " + b.isPresent()); //输出:true // 如果值存在,则返回初始值,否则返回默认值,or()方法中是默认值 Integer d1 = a.or(0); //输出:0 //Integer d2 = b.or(0); //输出:10 //Integer e1 = a.get(); //输出:java.lang.IllegalStateException: Optional.get() cannot be called on an absent value Integer e2 = b.get(); //输出:10 return d1 + e2; } }
3. 输出结果:
First parameter is present: false Second parameter is present: true 10
附录:
参考:http://www.yiibai.com/guava/guava_optional_class.html
相关文章推荐
- Guava学习笔记:Google Guava 类库简介
- Google Guava学习之Constraint
- [Google Guava]学习--新集合类型Multimap
- Google Guava学习(6)-Guava集合工具 Multiset
- Guava学习笔记:Google Guava 类库简介
- Google Guava学习计划第一章Guava Utilities—Joiner and Splitter
- 【Google Guava 学习笔记 二】关于Optional,避免null对你的摧残
- Google Guava学习之Table
- Google Guava学习笔记——基础工具类针对Object类的使用
- 瓜娃子?【Google Guava 学习笔记 一】
- Google Guava学习之Ordering
- Google Guava学习(2)-Guava Preconditions类
- Google Guava学习(4)-Guava Range类
- Google Guava学习计划第一章Guava Utilities—Function_Predicate_Maps_Sets
- Google Guava学习笔记——基础工具类Splitter的使用
- Google Guava学习之Immutable Collection
- [Google Guava]学习--新集合类型Multiset
- Guava学习笔记:Google Guava 类库简介
- Google Guava学习(7)-Guava集合工具 Bimap接口
- Google Guava学习(10)-Guava字符串工具Joiner