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已经支持的非常好了.不多说了..没有意义
相关推荐
2. **缓存机制**:Guava提供了LruCache(最近最少使用)实现,帮助开发者轻松创建高效的数据缓存系统,自动管理缓存大小,并能根据访问模式进行优化。 3. **函数式编程**:Guava支持函数式编程风格,包括Function、...
hive-exec-3.1.2 排除guava
Guava还包括`Preconditions`用于参数校验,`Optional`用于表示可能为空的值,`Function`和`Predicate`接口用于函数式编程,以及`Cache`和`EventBus`等更多实用工具。 总的来说,Guava库以其全面的功能、高效的实现...
这个版本的Guava提供了如ListMultimap、Table、Optional等数据结构,以及Preconditions、CheckState等代码质量检查工具,还有诸如FluentIterable、Iterables、Collections2等增强的集合操作方法。此外,它还包含了对...
Guava 还包括其他的工具类,如 `Preconditions`(用于抛出检查异常)、`Cache`(内存缓存机制)、`Lists`, `Sets`, `Maps`(增强版的集合工厂方法)等等。这些工具类的引入,大大提升了 Java 开发的效率和代码质量。...
├─Google Guava 第18讲-Guava之EventBus的使用详解-2.wmv ├─Google Guava 第19讲-Guava之EventBus和NIO2.0 WatchService综合实战.wmv ├─Google Guava 第20讲-实战:手动实现一个EventBus-01快速搭建程序结构...
8. **检查异常**:Guava通过Preconditions类提供了一组静态方法,用于在代码中进行预条件检查,确保程序的健壮性,避免在运行时抛出异常。 9. **事件系统**:Guava的 EventBus 是一个简单的发布/订阅事件总线,可以...
6. **预检查(Preconditions)**:Guava的Preconditions类提供了多种断言方法,用于在程序执行前检查条件是否满足,有助于发现潜在的错误,提高代码质量。 7. **流(Stream)操作**:虽然Java 5本身不支持Stream API...
2. **缓存机制**:Guava提供了LruCache(最近最少使用)缓存实现,可以方便地在应用程序中构建高效的缓存系统。 3. **函数式编程**:Guava支持函数式编程,包括Function、Predicate、Transformer等接口,便于编写...
2. **缓存机制**:Guava提供了一个强大的、可配置的本地缓存实现,允许开发者高效地存储和检索经常访问的数据,减少对远程服务或数据库的调用。 3. **并发工具**:Guava提供了如ListenableFuture、CountDownLatch、...
2. **流(Stream)API**:虽然Java 8引入了流的概念,但Guava早在18.0版本之前就有了FluentIterable,这可以看作是早期的流API。FluentIterable允许以链式调用的方式处理数据,提供了一种简洁、可读性强的编程方式。...
9. **检查异常(Checked Exceptions)**:Guava提供了Preconditions类,可以帮助编写更健壮的代码,通过预条件检查在运行时捕获错误。 10. **I/O操作**:Guava提供了Files、ByteStreams、CharStreams等工具类,简化...
2. **并发工具**:Guava提供了一套强大的并发工具,如Futures、Lists、Sets和Maps的并发版本,以及如CountDownLatch、CyclicBarrier等同步原语,帮助开发者编写高效、线程安全的代码。 3. **函数式编程支持**:...
在使用"guava-r09.jar"时,开发者可以利用`Preconditions`进行参数检查,确保代码的正确性,同时利用`MultiInputStream`进行多源数据的读取和处理,提升程序的灵活性。理解并熟练运用这些工具,能够极大地提升开发者...
受Guava Preconditions和Jasmine的启发,Better Preconditions是一组Java API,用于创建流利的,可读的和可测试的Java前提条件。 Maven依赖 < groupId>com.github.choonchernlim</ groupId> < artifactId>better...
Guava提供了强健的断言工具,如Preconditions和Truth,可以帮助在开发阶段尽早发现错误,提高代码质量。 8. **事件监听系统** EventBus是Guava中的一个轻量级事件总线,允许组件之间松耦合地通信,而无需硬编码...
2. 缓存:Guava的Cache模块允许开发者创建本地缓存,可以自动管理缓存项的生命周期,例如基于引用计数或时间戳的过期策略。这有助于减少不必要的计算或远程调用,提高系统响应速度。 3. 并发工具:Guava提供了一套...
- **预格式化字符串**:Preconditions 类提供了一些静态方法,用于在运行时检查参数的有效性,避免空指针异常等错误。 3. **IO 工具** - **流处理**:Guava 的 ByteStreams、CharStreams 和 Files 工具类提供了对...
2. **集合框架增强**: Guava对Java的集合框架进行了扩展,包括Immutable集合(不可变集合)、SetMultimap(键值对都是唯一集合的映射)、ListMultimap(键对应的值是一个列表)等。这些增强的集合类提供了更强大的...
- Guava提供了预计算功能,用于优化计算密集型操作,而Preconditions则提供了丰富的断言方法,用于代码调试。19.0版本可能提升了预计算的效率,增强了断言的灵活性。 10. **兼容性和API稳定性**: - Guava 19.0...