1 Preconditions
Preconditions.checkArgument(true);//判断是否为true.否则抛出IllegalArgumentException Preconditions.checkNotNull(1);//NullPointerException Preconditions.checkState(true);//老实说,这个与 checkArgument 源代码一致..只是老外为了区分参数还是状态值吧 //还有一些检查数组越界的方法.就不介绍了.个人感觉用处不大.
具体看一下下图就明白了
这个怎么说呢,感觉用处不大..特别是在Guava在同事中并没有大批量推行的时候,如果我这边写这么一条check.抛了一个Exception,,对其他同事排查问题可能会有障碍.因为他在review这个代码的时候没注意到这个有可能抛异常..我宁可写一个显式的抛异常代码来替代这个.
2 Objects
提供了equals,hashCode与toString方法.前面的两个,个人觉得就那样,非常推荐最后的toString非常推荐,特别是在打日志的时候..具体如下
public class ObjectsDemo { public static void main(String[] args) throws Exception{ Objects.equal("a", "a"); // returns true Objects.equal(null, "a"); // returns false Objects.equal("a", null); // returns false Objects.equal(null, null); // returns true ObjectsDemo od = new ObjectsDemo(); od.query(0l,null); } public Object query(Long userId,Long itemId){ if(itemId == null || userId == null){ throw new IllegalArgumentException(Objects.toStringHelper("query error.").add("userId", userId).add("itemId", itemId).toString()); } // do query return null; } }
最后的输出是
写道
Exception in thread "main" java.lang.IllegalArgumentException: query error.{userId=0, itemId=null}
还是很优雅的
3 Throwables
JDK7已经支持的非常好了.不多说了..没有意义
相关推荐
hive-exec-3.1.2 排除guava
├─Google Guava 第18讲-Guava之EventBus的使用详解-2.wmv ├─Google Guava 第19讲-Guava之EventBus和NIO2.0 WatchService综合实战.wmv ├─Google Guava 第20讲-实战:手动实现一个EventBus-01快速搭建程序结构...
受Guava Preconditions和Jasmine的启发,Better Preconditions是一组Java API,用于创建流利的,可读的和可测试的Java前提条件。 Maven依赖 < groupId>com.github.choonchernlim</ groupId> < artifactId>better...
guava正式发布了20.0版本,在升级guava版本时需要关注一下更新的内容。 更新概况 common.graph ...2.Preconditions中checkNonNull和checkState有变化 3.Throwables新添加了方法和弃用了一些方法 .....
com.google.common.base.Preconditions.class com.google.common.io.MultiInputStream.class
Write more robust code that is easier to read and maintain, Learn how to use Preconditions to prevent and find errors faster, Shows how Guava Collections can make working with Java Collections a ...
import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; 报错,找不到这些类 解决: 要用guava.jar包 Guava 中文是...
结合 Guava Preconditions 自定义参数校验断言 数据库连接池 Druid 日志组件 logback 异常统一处理 自定义 Exception 全局 ExceptionHandler 缓存 Redis 单元测试框架 JUnit 认证 JWT API 规范 RESTful API 规范 ...
2:Lamda 函数式编程基础,优化美丽的高性能代码 函数式编程 Consumer 3:Redis 让业务更快,让锁,mq有多重选择 4:Guava Ratelimiter接口限速 Preconditions参数检测 本地缓存 CacheBuilder(相比于数组,List, 可固定...