Preconditions

1,http://www.cnblogs.com/peida/p/Guava_Preconditions.html

 1 .checkArgument(boolean) :
  功能描述:检查boolean是否为真。 用作方法中检查参数
  失败时抛出的异常类型: IllegalArgumentException

  2.checkNotNull(T):     
  功能描述:检查value不为null, 直接返回value;
  失败时抛出的异常类型:NullPointerException

  3.checkState(boolean):
  功能描述:检查对象的一些状态,不依赖方法参数。 例如, Iterator可以用来next是否在remove之前被调用。
  失败时抛出的异常类型:IllegalStateException

  4.checkElementIndex(int index, int size):
  功能描述:检查index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)(包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。   
  失败时抛出的异常类型:IndexOutOfBoundsException

  5.checkPositionIndex(int index, int size):这个可以==size
  功能描述:检查位置index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)(包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。
  失败时抛出的异常类型:IndexOutOfBoundsException

  6.checkPositionIndexes(int start, int end, int size):
  功能描述:检查[start, end)是一个长度为size的list, string或array合法的范围子集。伴随着错误信息。
  失败时抛出的异常类型:IndexOutOfBoundsException

  //不为空
Preconditions.checkNotNull(content, "content is null");
//字数要求,10<x<50
try {
Preconditions.checkArgument(content.trim().length() > NumberConst.RESPONSE_MIN
&& content.trim().length() < NumberConst.RESPONSE_MAX, ResultConst.REQUEST_CONTENT);
} catch (IllegalArgumentException e) {
log.info("回复字数不符合要求");
throw new BizException(ResultConst.ERROR_CODE, e.getMessage());
}

Lists.transform

这个方法有坑,返回的list只保留了原来list和转换方法,所以说每次都只通过旧list计算出新list,不能再临时的对象上添加东西

解决方案:拷贝它的引用

List<ResumeResponseForm> resumeResponseFormList = new ArrayList<ResumeResponseForm>(resumeResponseFormListTemp);

https://www.cnblogs.com/winkey4986/p/7498769.html

https://blog.csdn.net/mnmlist/article/details/53870520

Optional

静态方法

Optional.of(T):获得一个Optional对象,其内部包含了一个非null的T数据类型实例,若T=null,则立刻报错。
  Optional.absent():获得一个Optional对象,其内部包含了空值
  Optional.fromNullable(T):将一个T的实例转换为Optional对象,T的实例可以不为空,也可以为空[Optional.fromNullable(null),和Optional.absent()等价。

2.实例方法:

  1>. boolean isPresent():如果Optional包含的T实例不为null,则返回true;若T实例为null,返回false
  2>. T get():返回Optional包含的T实例,该T实例必须不为空;否则,对包含null的Optional实例调用get()会抛出一个IllegalStateException异常
  3>. T or(T):若Optional实例中包含了传入的T的相同实例,返回Optional包含的该T实例,否则返回输入的T实例作为默认值
  4>. T orNull():返回Optional实例中包含的非空T实例,如果Optional中包含的是空值,返回null,逆操作是fromNullable()

        //初次访问就第一个未默认,选了的话就选了的为默认
// if (_resumeId == null) {
// _resumeId = resumeDtoList.get(0).getRes_id();
// }
Optional<Long> resumeIdOptional = Optional.fromNullable(_resumeId);
Long resumeId = resumeIdOptional.or(resumeDtoList.get().getRes_id());

Strings

// 问题: 1."UTF-8"必须在Java平台中被支持 2.人工敲入会有偏差
// byte[] bytes = "foo".getBytes("UTF-8");
// 解决: Charsets类提供了对Java平台支持字符集
byte[] bytes = "foo".getBytes(Charsets.UTF_8);

// 问题: 使用StringBuilder类连接字符串太繁琐, 代码其实都是重复的
// 解决: Strings类封装了连接字符串的统一代码
System.out.println("padEnd");
String stringsTest = Strings.padEnd("foo", 6, 'o');
System.out.println(stringsTest);

// 在String作为参数时,将null转换成""防止空指针问题
System.out.println("nullToEmpty");
String nullToEmptyTest1 = Strings.nullToEmpty("123");
String nullToEmptyTest2 = Strings.nullToEmpty(null);
System.out.println(nullToEmptyTest1 + "--" + nullToEmptyTest2);

// ""转null,是字符串的"null"
System.out.println("emptyToNull");
String emptyToNullTest1 = Strings.emptyToNull("123");
String emptyToNullTest2 = Strings.emptyToNull("");
System.out.println(emptyToNullTest1 + "--" + emptyToNullTest2);

最新文章

  1. ubuntu 14.04安装 ruby on rails
  2. html学习:插入优酷视频
  3. javascript栈的建立样码
  4. ODI中web service介绍
  5. oracle SQL Develop导出数据库中的表格数据到excel
  6. MyBatis 实践 -动态SQL/关联查询
  7. Servlet &amp; JSP - Cookie
  8. lua的学习
  9. MongoDB在实际项目
  10. jsp环境搭建(Windows)
  11. POJ 2472 106 miles to Chicago(Dijstra变形——史上最坑的最长路问题)
  12. Block使用的简单总结
  13. linux OSI七层模型、TCP/IP协议栈及每层结构大揭秘
  14. Java设计模式之(一)------单例模式
  15. 解决Eclipse中.properties文件中文乱码问题
  16. 冒泡排序Java版
  17. -Dmaven.multiModuleProjectDirectory system property is not set.
  18. 6.25html基础!
  19. LeetCode111.二叉树的最小深度
  20. 在Ubuntu 14.04 LTS系统中设置Apache虚拟主机(一IP多访问)

热门文章

  1. 13.LockSupport工具
  2. tomcat安装图文教程
  3. Hessian序列化
  4. MyCat入门指南
  5. 由浅入深了解EventBus:(四)
  6. 十四、dbms_obfuscation_toolkit(用于加密和解密应用数据)
  7. Jqeury ajax 调用C#的后台程序
  8. 将VIM打造成强大的IDE
  9. asp页面快速找到菜单按钮转向的页面的方法
  10. POJ 1951