Java中使用Preconditions来检查传入参数介绍_java

Preconditions是Guava中的一个类库,用于检查传入参数,一个常见用法如下:

boolean findElement(List<String> elements, String desiredElement) {
 checkNotNull(elements);
 // ...
}

用法简单明了,就是检查参数elements是不是null,如果是null则扔出NullPointerException。当然Preconditions类里还有其它方法,可能满足几乎所有的传入参数的检查。Preconditions的好处在于,它在call stack中更容易理解,并且每个方法还提供了格式化字符串的变体,形如:

checkArgument(i < j, "Expected i < j, but %s > %s", i, j);

和Java自带的assert关键字不同的是,Preconditions的方法在release版本中依然有效,这么做的原因,大概是因为Java已经很慢了,不在乎多做些检查吧-_-

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, Preconditions
检查传入参数
java main 传入参数、java调用exe 传入参数、java jar 传入参数、java 传入泛型参数、java传入多个参数,以便于您获取更多的相关知识。

时间: 2024-09-17 09:37:40

Java中使用Preconditions来检查传入参数介绍_java的相关文章

基于java中stack与heap的区别,java中的垃圾回收机制的相关介绍_java

#. 在java中有两类内存.分别称为stack(堆栈)和heap(堆). stack是程序内存空间,因此所有的基本类型和对象的引用是存在stack中. heap是java虚拟机储存对象的,它是一个巨大的内存,当你创造一个对象,java虚拟机把对象放入heap中,把创造的对象的地址放入stack中. 因此,基本类型.对象的引用储存在stack中:对象储存在heap中. #. java中的垃圾回收机制 当你new一个新的对象,java分配必需的内存.当你用完一个对象时,java的垃圾回收器为你把内

Java中的2种集合排序方法介绍_java

直接上代码: import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * <p> * ClassName CollectionsSort * </p> * <p> * Description 主要介绍两种集合的排序算法<br/> * 第一:java.util.Collections.s

java中final 变量作为方法的参数?怎么理解?见下面代码

问题描述 java中final 变量作为方法的参数?怎么理解?见下面代码 class NiMingLei { public static void main(String[] args) { Outer out= new Outer(); out.function(7); out.function(8); } } class Outer { static int y=4; void function(final int a) { class Inter { void method() { Sys

java中什么情况下方法的参数可以省略数据类型而直接写数据?

问题描述 java中什么情况下方法的参数可以省略数据类型而直接写数据? 比如put(int 3); 什么情况下可以写put(3); 这里的put方法也没有方法体,什么情况下可以省略方法体呢 解决方案 put(int 3),有这种方式吗 put(int n)这种形式是方法的定义,当你使用put方法时,就直接传具体的值就行了 public int put(int n) { return n*10; } int m = put(10) 解决方案二: 对于你这种问法我是不解的,全局变量定义之后,局部变量

Java中自然排序和比较器排序详解_java

前言 当指执行插入排序.希尔排序.归并排序等算法时,比较两个对象"大小"的比较操作.我们很容易理解整型的 i>j 这样的比较方式,但当我们对多个对象进行排序时,如何比较两个对象的"大小"呢?这样的比较 stu1 > stu2 显然是不可能通过编译的.为了解决如何比较两个对象大小的问题,JDK提供了两个接口 java.lang.Comparable 和 java.util.Comparator . 一.自然排序:java.lang.Comparable C

Java中jqGrid 学习笔记整理——进阶篇(二)_java

相关阅读: Java中jqGrid 学习笔记整理--进阶篇(一) 本篇开始正式与后台(java语言)进行数据交互,使用的平台为 JDK:java 1.8.0_71 myEclisp 2015 Stable 2.0 Apache Tomcat-8.0.30 Mysql 5.7 Navicat for mysql 11.2.5(mysql数据库管理工具) 一.数据库部分 1.创建数据库 使用Navicat for mysql创建数据库(使用其他工具或直接使用命令行暂不介绍) 2. 2.创建表 双击打

JAVA中阻止类的继承(官方和非官方)_java

官方办法 JAVA语言提供的一个关键字"FINAL"可以用来履行该任务.看看下面的源代码范例: 复制代码 代码如下: //FinalDemo.java public final class FinalDemo { }     下面让我们来制作另一个类,它将会继承上面声明的类.JAVA语言提供的"EXTENDS"关键字将能够使得一个类继承于一个现有的类. 复制代码 代码如下: //FinalDemo2.java public class FinalDemo2 exte

Java中的Calendar日历API用法完全解析_java

第一部分 Calendar介绍Calendar 定义: public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {} Calendar 可以看作是一个抽象类. 它的实现,采用了设计模式中的工厂方法.表现在:当我们获取Calendar实例时,Calendar会根据传入的参数来返回相应的Calendar对象.获取Calendar实例,有以下两种方式: (1) 当我们通过 Cale

Java中一些基础概念的使用详解_java

类的初始化顺序 在Java中,类里面可能包含:静态变量,静态初始化块,成员变量,初始化块,构造函数.在类之间可能存在着继承关系,那么当我们实例化一个对象时,上述各部分的加载顺序是怎样的? 首先来看代码: 复制代码 代码如下: class Parent {     public static StaticVarible staticVarible= new StaticVarible("父类-静态变量1");         public StaticVarible instVaribl