欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jdk1.5以上方法动态接收参数

程序员文章站 2022-07-15 13:27:37
...
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