public class DynamicParameterTest {
/**
* <h3>动态接收参数方法</h3>
*
* @param Object
* ... args动态参数数组
*/
static void parameterMethod(Object... args) {
System.out.println("start parameterMethod(Object... args)");
if (args == null || args.length == 0) {
System.out.println("parameter is null or empty");
} else {
System.out.println("parameter length=" + args.length
+ ",list parameter type--");
for (Object t : args) {
if (t instanceof java.lang.Byte) {
System.out.println("\tjava.lang.Byte");
} else if (t instanceof java.lang.Short) {
System.out.println("\tjava.lang.Short");
} else if (t instanceof java.lang.Integer) {
System.out.println("\tjava.lang.Integer");
} else if (t instanceof java.lang.Long) {
System.out.println("\tjava.lang.Long");
} else if (t instanceof java.lang.Float) {
System.out.println("\tjava.lang.Float");
} else if (t instanceof java.lang.Double) {
System.out.println("\tjava.lang.Double");
} else if (t instanceof java.lang.Boolean) {
System.out.println("\tjava.lang.Boolean");
} else if (t instanceof java.lang.Character) {
System.out.println("\tjava.lang.Character");
} else if (t instanceof java.lang.String) {
System.out.println("\tjava.lang.String");
} else {
System.out.println("\tjava.lang.Object");
}
}
}
}
public static void main(String[] args) {
parameterMethod(null);// null
parameterMethod(new Object[0]);// empty
parameterMethod((byte) 1, (short) 1, 1, 1L, 1F, 1D, true, '1', "1",
new Object());
Object parArray[] = new Object[] { 1,
new java.util.Hashtable<String, String>() };
Object parArrayRef = parArray;
parameterMethod(parArray);
parameterMethod(parArrayRef);
}
}
输出如下所示:
start parameterMethod(Object... args)
parameter is null or empty
start parameterMethod(Object... args)
parameter is null or empty
start parameterMethod(Object... args)
parameter length=10,list parameter type--
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.Float
java.lang.Double
java.lang.Boolean
java.lang.Character
java.lang.String
java.lang.Object
start parameterMethod(Object... args)
parameter length=2,list parameter type--
java.lang.Integer
java.lang.Object
start parameterMethod(Object... args)
parameter length=1,list parameter type--
java.lang.Object
分享到:
相关推荐
之前需要创建一个数组来接收参数,现在可以直接用varargs语法来实现。 在编程实践中,JDK1.5添加了for-each循环(也称为增强for循环)。这使得遍历集合、数组等数据结构的代码更加简洁,提高了可读性。 对于异常...
在JDK1.5中,开发者可以在方法签名中使用省略号(...)表示可变参数。这允许方法接受任意数量的相同类型的参数,如: ```java public void printNumbers(int... nums) { // 代码块 } ``` 这个方法可以接收一个或多...
泛型是JDK1.5最重要的特性之一,它允许在类、接口和方法声明中使用类型参数,以实现数据类型的参数化。泛型提高了代码的类型安全性和可读性,减少了类型转换的需要,并允许编译器检查类型错误。 2. **自动装箱与...
这个压缩包包含了三个不同版本的JDK:JDK 1.5、JDK 1.6和JDK 1.8,其中1.5和1.6是早期版本,而1.8是最流行且广泛使用的版本之一。 **JDK 1.5(也称为Java 5.0)** JDK 1.5在2004年发布,引入了许多重要的新特性,如...
10. **枚举常量的构造函数**:在JDK1.5中,枚举类型的构造函数可以接收参数,允许创建具有不同初始状态或行为的枚举实例。 以上这些特性极大地增强了Java语言的功能和表现力,让Java开发者能够编写出更加安全、可...
以上是JDK1.5对Java语言的重要贡献,这些特性极大地提升了开发效率和代码质量。如果你在Windows系统上解压并安装了"jdk1.5.0_01",你将能够利用这些特性进行Java编程。确保在环境变量中设置好`JAVA_HOME`,并将`bin`...
4. **可变参数**:可变参数允许方法接收任意数量的同类型参数,如`public void printNumbers(int... numbers)`,提高了代码的灵活性。 5. **增强的for循环**:也被称为foreach循环,简化了遍历数组和集合的操作,如...
泛型是JDK 1.5最重要的特性之一,它允许在类、接口和方法中使用类型参数,提高了代码的类型安全性和可读性。通过泛型,可以确保容器(如ArrayList、HashMap)中的元素类型在编译时就被限定,避免了运行时的类型转换...
7. **可变参数(Varargs)**:允许方法接收一个可变长度的参数列表,例如`void print(int... numbers)`。 8. **注解(Annotations)**:注解为元数据提供了一种机制,可以用于编译时检查或运行时处理。例如,`@...
1. **泛型(Generics)**:JDK 1.5引入了泛型,允许在类、接口和方法中使用类型参数,提升了代码的类型安全性,减少了类型转换的需要。例如,ArrayList声明了一个只能存储String对象的列表。 2. **自动装箱与拆箱**...
1. **泛型(Generics)**: JDK1.5引入了泛型,允许在类、接口和方法中使用类型参数,从而提高了代码的类型安全性和重用性。泛型可以防止在运行时出现ClassCastException,并且在编译时就能检测出类型不匹配的问题。 ...
变量长度参数允许方法接收任意数量的同一类型的参数。这使得编写方法时,可以处理不确定数量的输入参数,提高了代码的灵活性。 5. **增强的for循环(Enhanced For Loop)** 也被称为foreach循环,它简化了遍历...
泛型是JDK 1.5引入的最重要的特性之一,允许开发者在类、接口和方法中使用类型参数,提高了代码的类型安全性和可读性,减少了强制类型转换的需要。 2. **枚举(Enums)** JDK 1.5引入了枚举类型,使得定义常量...
标题"jdk1.5 and tomcat5.5"指的是Java Development Kit (JDK) 1.5版本与Apache Tomcat 5.5版本的组合。这两个组件是开发和运行Java应用程序的关键工具,特别是对于Web应用程序。 描述中提到的"jdk-1_5_0_22-...
1. **泛型(Generics)**:这是JDK 1.5最重要的特性之一,允许在类、接口和方法声明中使用类型参数,增强了代码的类型安全性,减少了运行时类型异常的可能性。泛型使程序员可以编写更通用的代码,提高重用率,并减少...
在类型系统方面,JDK 1.5引入了变长参数(Varargs),允许方法接收任意数量的相同类型的参数。这在编写函数时提供了更大的灵活性。 JDK 1.5的内存模型和并发工具也得到了增强,添加了如`java.util.concurrent`包,...
JDK 1.5引入的变长参数简化了方法签名,例如`int sum(int... intList)`。 JDK 1.5的其他改进还包括: - **枚举(Enums)**:提供了一种更安全的方式来定义常量。 - **可变参数方法(Varargs Methods)**:与变长...
`jdk1.5.exe` 是用于在Windows上安装JDK 1.5的可执行文件。安装过程包括接受许可协议、选择安装路径、设置环境变量(如JAVA_HOME, PATH)等步骤。安装完成后,开发者可以通过命令行工具如`javac`进行编译,`java`...
除了以上介绍的特性,JDK 1.5还对反射、异常处理、I/O流等方面进行了优化。这些新特性的引入,使得JDK 1.5成为了Java开发的一个重要转折点,为后来的Java版本奠定了坚实的基础。开发者应熟悉并充分利用这些特性,以...
泛型是JDK 1.5引入的一项重大特性,允许在定义类、接口和方法时指定类型参数,增强了代码的类型安全性和重用性。通过泛型,可以避免在运行时进行类型转换,并能检测出潜在的类型错误。例如,ArrayList<E> 类现在可以...