`

java可变参数判空

阅读更多

             今天在排查一个问题,涉及到可变参数,目测已经判空,结果还是报了错误,于是写了个小例子分享下:

public class Test {
	public static void main(String[] args) {
		int a = 1;
		String b = null;
		testA(a,b);
	}

	private static void testA(int a, String... b) {
		System.out.println(b == null);
		System.out.println(b.length);
		System.out.println(b[0] == null);
	}
}

           大家可以闭上眼睛想想输出结果:



 

    

我们再蛋疼的看一下下面程序的输出:

public class Test {
	public static void main(String[] args) {
		int a = 1;
		String b = null;
		//testA(a,b);
		testA(a);
	}

	private static void testA(int a, String... b) {
		System.out.println(b == null);
		System.out.println(b.length);
		System.out.println(b[0] == null);
	}
}

    我们知道,第三个报空指针没有悬念,那么这个时候b到底是不是null呢,我们看一下运行结果。



 从上面我们可以看到,b仍然不为null,其实是一个new String[0]的东西,所以说我们动态参数判断

if(b != null)这个是相当没有意义的

  • 大小: 31.6 KB
  • 大小: 36.9 KB
分享到:
评论
1 楼 znn1980 2014-08-08  
testA(a,null);

相关推荐

    10.java可变参数.zip

    10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可变参数.zip10.java可...

    Java可变参数demo

    在Java编程语言中,可变参数(Variable-Argument Parameters)是一项强大的特性,它允许函数接收一个不确定数量的同类型参数。这个特性自Java 5引入,极大地提高了代码的灵活性和可读性。在这个名为"Java可变参数...

    java万能判空工具类-可直接使用

    1. **对象判空**:`CheckUtil.isNotNull(Object obj)` 是一个基础的判空方法,它接受一个Object类型的参数,如果对象非空,则返回true,否则返回false。这个方法通常用于检查实例变量或方法的返回值,确保它们在被...

    Kotlin传递可变长参数给Java可变参数实例代码

    Kotlin传递可变长参数给Java可变参数实例代码 Kotlin是一种现代化的静态类型语言,运行于Java虚拟机上,能够与Java语言进行无缝集成。在实际开发中,我们经常需要在Kotlin和Java之间进行交互,特别是在调用Java方法...

    java可变参数.pdf

    Java中的可变参数(Varargs)是一种语法特性,允许开发者定义接受不定数量参数的方法。这在实际开发中非常有用,特别是在实现方法重载或者想要简化代码时。可变参数在Java中自J2SE 1.5版本起被引入。在可变参数方法...

    java可变参数[文].pdf

    Java 可变参数是Java 1.5引入的一项特性,它允许我们在方法声明时定义一个可以接受任意数量相同类型的参数的方法。这种方法的实现基于数组,但在语法层面上提供了更为简洁的调用方式。 1. **可变参数的概念** - 可...

    java判断参数是否为空工具类 java判断对象属性是否全部为空

    java判空工具类 可以判断字符串数组,字符串类型,List对象集合,Map集合map,object>,map和多个String参数,对象类型,是否为空。 java判断对象属性是否全部为空,只要有一个属性不为空,那么就不是所有的属性值都...

    [java]中的可变参数定义和使用

    ### Java中的可变参数定义与使用详解 #### 可变参数概述 在Java编程语言中,可变参数(Varargs)是一种特殊的参数形式,允许一个方法接受任意数量的同类型参数。这种特性使得方法能够更加灵活地处理不同数量的输入...

    Java的可变参数讲解代码(使用方式、原理、结合泛型、使用元组或列表进行参数传递、 使用默认值、缓存计算结果、实战构建动态日志)

    Java可变参数(Varargs)是一种语言特性,允许方法接受可变数量的参数。在方法声明中使用省略号(...) 表示,可以将不定数量的参数传递给方法。可变参数使得方法更加灵活,可以接受任意数量的参数,并以数组形式访问...

    java可变参数当做数组处理的方法示例

    Java可变参数当做数组处理的方法示例 Java可变参数当做数组处理的方法示例主要介绍了Java可变参数当做数组处理的相关原理、步骤与操作注意事项。本文将通过实例形式对Java可变参数当做数组处理的方法进行详细讲解,...

    java类和对象之可变参数.docx

    Java 类和对象是编程语言的基础,而可变参数(Variable Argument)是 Java 为了解决方法接收不定数量参数的问题引入的一个特性。这个特性允许我们创建一个方法,它能接受一个可变数量的参数,而不是固定数量。这在...

    java 可变参数详解及实例

    Java 可变参数是Java 5.0引入的一项新特性,它允许我们在方法签名中使用一个带有省略号(...)的参数,使得该方法能够接收任意数量的相同类型的参数。这种特性使得方法调用更加灵活,同时也简化了处理不定数量参数的...

    java类和对象之可变参数.pdf

    Java中的可变参数(Variable Arguments)是编程中一个便利的功能,允许我们在方法声明时定义一个可以接受任意数量相同类型参数的参数列表。这种特性在处理不确定数量输入时非常有用,比如函数式编程中的高阶函数。 ...

    java可变长参数(三个点)md,学习代码

    Java中的可变长参数是Java 5引入的一个重要特性,它允许我们在定义方法时使用一个类型后跟三个点(...)来表示该方法可以接受任意数量的参数。这个特性极大地提高了代码的灵活性和便利性,使得我们可以以更简洁的...

    java中的可变参数使用方法

    Java中的可变参数(Variable-Argument Parameters)是自Java 1.5版本引入的一个特性,它允许我们在方法声明中使用省略号(...)来表示一个可变数量的参数。这个特性大大增强了Java方法的灵活性,使得我们能够以更加...

    Java 判空 Optional 详解

    Java 判空 Optional 详解

    Java Varargs 可变参数用法详解

    Java Varargs(可变参数)是Java 1.5版本引入的一个特性,允许开发者在编写方法时可以接受任意数量的参数。Varargs是variable arguments的缩写,即变参,有时也简称为variable arguments。可变参数使得方法能够接受...

    Java判空方法解析.pptx.pptx

    Java编程语言中,判空是确保程序稳定性和避免空指针异常(NullPointerException)的关键操作。在处理对象引用时,必须确保对象非空再进行进一步的操作。以下是对Java中几种常见判空方法的深入解析: 1. **使用if...

    java调用json参数的webservice

    在探讨Java调用带有JSON参数的WebService之前,我们首先需要了解几个关键的技术概念:Java、JSON以及WebService。 Java是一种广泛使用的编程语言,它具有面向对象、跨平台、多线程以及健壮性等特点。Java在企业级...

    大数据必学Java基础(二十七):详述main方法和了解可变参数

    在大数据领域,掌握Java基础至关重要,特别是main方法和可变参数,因为它们是编写任何Java程序的基础。 详述main方法: 1. **main方法说明**:main方法是Java程序的主方法,它告诉JVM从何处开始执行代码。当JVM...

Global site tag (gtag.js) - Google Analytics