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