`

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版本起被引入。在可变参数方法...

    C以及Java中可变参数列表函数定义方法

    本文将探讨一个共同的话题——如何在C和Java中定义可变参数列表的函数。可变参数列表,也称为不定参数或可变参数,允许函数接受不同数量的参数,增加了代码的灵活性。 在C语言中,可变参数列表的实现依赖于`stdarg....

    java最强大的判空工具类

    java最强大的判空工具类,可判断所有数据类型。简单易用

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

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

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

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

    Java中的可变参数常见用法实例总结

    Java中的可变参数常见用法实例总结 Java中的可变参数是一种特殊的参数类型,允许在方法中传递可变数量的参数。下面是Java中的可变参数常见用法实例总结: 一、可变参数的概念 在J2SE 1.4之前,Java中无法定义实参...

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

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

    Java可变参数列表详解

    Java可变参数列表,也称为不定参数,是Java语言中的一种特性,允许方法接收数量可变的参数。这种特性在编程时提供了极大的灵活性,尤其是在处理不确定数量输入的情况下。以下是关于Java可变参数列表的详细解释。 1....

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

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

    Java 实例 - Varargs 可变参数使用源代码-详细教程.zip

    Java中的可变参数(Varargs)是自Java 5引入的一项特性,它允许函数接受一个或多个同类型的参数。在编程中,有时我们可能需要创建一个方法,该方法可以接收不同数量的相同类型参数,例如打印日志、计算数组元素等。...

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

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

    java实现七参数转换功能

    本篇将深入探讨“七参数转换”在Java中的实现,并通过名为"SevenParamsDemo"的示例程序进行详细讲解。 七参数转换是一种解决地心坐标系之间转换的方法,它包括三个平移参数(x、y、z)、三个旋转参数(α、β、γ)...

    参数数目可变的函数 求和

    输入的第一个数字为准备输入函数的个数。 对后面输入的函数求和。

    Java Varargs 可变参数用法详解

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

    java调用json参数的webservice

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

    java过滤器对所有参数去除前后空格

    对项目中的所有参数去除前后空格过滤,统一处理参数!可以基于此过滤器实现过滤跨站脚本攻击,参数的增加,修改!敏感词汇过滤。实现原理为重写HttpServletRequestWrapper,获取参数的方法。include和 Forwarded ...

Global site tag (gtag.js) - Google Analytics