`
chenjingbo
  • 浏览: 456448 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Guava总结2-Preconditions

 
阅读更多

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已经支持的非常好了.不多说了..没有意义

  • 大小: 130 KB
分享到:
评论

相关推荐

    hive-exec-3.1.2 排除guava

    hive-exec-3.1.2 排除guava

    不加密Google Guava视频教程.txt

    ├─Google Guava 第18讲-Guava之EventBus的使用详解-2.wmv ├─Google Guava 第19讲-Guava之EventBus和NIO2.0 WatchService综合实战.wmv ├─Google Guava 第20讲-实战:手动实现一个EventBus-01快速搭建程序结构...

    better-preconditions:Java API,用于创建流利,可读和可测试的前提条件

    受Guava Preconditions和Jasmine的启发,Better Preconditions是一组Java API,用于创建流利的,可读的和可测试的Java前提条件。 Maven依赖 < groupId>com.github.choonchernlim</ groupId> < artifactId>better...

    guava-20.0.rar

    guava正式发布了20.0版本,在升级guava版本时需要关注一下更新的内容。 更新概况 common.graph ...2.Preconditions中checkNonNull和checkState有变化 3.Throwables新添加了方法和弃用了一些方法 .....

    guava-r09.jar

    com.google.common.base.Preconditions.class com.google.common.io.MultiInputStream.class

    Getting Started with Google Guava

    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 ...

    guava.jar包 NFC用到

    import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; 报错,找不到这些类 解决: 要用guava.jar包 Guava 中文是...

    SSM_systemDemo:VNDais 作业管理系统,SSM,React,IEC,Maven,REST,JWT

    结合 Guava Preconditions 自定义参数校验断言 数据库连接池 Druid 日志组件 logback 异常统一处理 自定义 Exception 全局 ExceptionHandler 缓存 Redis 单元测试框架 JUnit 认证 JWT API 规范 RESTful API 规范 ...

    java8源码-SpringTree:互联网通用技术

    2:Lamda 函数式编程基础,优化美丽的高性能代码 函数式编程 Consumer 3:Redis 让业务更快,让锁,mq有多重选择 4:Guava Ratelimiter接口限速 Preconditions参数检测 本地缓存 CacheBuilder(相比于数组,List, 可固定...

Global site tag (gtag.js) - Google Analytics