1. 程式人生 > >Object陣列與可變引數

Object陣列與可變引數

Object陣列

class A{}
public class Varargs {
   static void PrintArray(Object[] args){
       for(Object obj: args)
           System.out.println(obj + " ");
       System.out.println();
   }
    public static void main(String[] args) {
        Object[] tom = new Object[]{"asdsdad", new Boolean
(false), new Integer(47), new Double(11.11)}; PrintArray(tom); PrintArray(new Object[]{ new Integer(47), new Float(3.14), new Double(11.11)}); PrintArray(new Object[]{"one", "two", "three"}); PrintArray(new Object[]{new A(), new SpaceShipControls(), new Flower
("呵呵")}); //如果不重寫toString 這裡將print出類的名字和物件的地址}); } }

Object… args

Object… args表示有若干個Object物件的引數,沒有限定的個數。只要是Object都可以呼叫

public class NewVarargs {
    static void printArray(Object ... args){
        for(Object obj : args){
            System.out.print(obj + " ");
        }
        if
(args.length == 0) System.out.println("空空如也"); System.out.println(); public static void main(String[] args){ ... } } public static void main(String[] args) { // Can take individual elements: printArray(new Integer(47), new Float(3.14), new Double(11.11)); printArray(47, 3.14f, 11.11); printArray(new String("ononosd"), "sad", "??"); printArray(new A(), new A(), new A()); printArray(new Object[]{new A(), new SpaceShipControls(), new Flower("呵呵")}); //會輸出雜湊值 printArray(); //Empty is OK ⭐️⭐️⭐️ }

可變引數列表的可變引數為String

public class OptionalTrailingArguments {
    static void f(int required, String ... trailing){
        System.out.print("required" + required + " ");
        for(String s : trailing)
            System.out.print(s + " ");
        System.out.println();
    }
    public static void main(String[] args) {
        f(1, "one");
        f(2, "two", "three");
        f(0);
    }
}

其他型別的可變引數

public class VarargType {
    static void f(Character ... args){
        System.out.println(args.getClass());
        System.out.println("length = " + args.length);
    }
    static void g(int... args){
        System.out.println(args.getClass());
        System.out.println("length = " + args.length);
    }
    public static void main(String[] args) {
        f('a');
        f();
        g(22);
        g(1, 42, 2, 3, 4, 3);
        g();
        System.out.println("int[]: " + new int[0].getClass());
    }
}