關於Varargs,我可以重複一組中的參數嗎?可變參數在一組?
舉例來說,我希望允許用戶通過在:
myFunc(1, "one");
myFunc(1, "one", 2, "two");
myFunc(1, "one", 2, "two", 3, "three");
這似乎是不可能的。但正如docs所述,可變參數實際上是一箇舊的實現中的數組。我想知道如何是人做之前 varargs是發明。這可能會激勵我們如何實現上述情景。我們可以把我的情景視爲{int, String}...
重複。
感謝任何輸入:-)
編輯:
感謝您的投入!
那麼,是否通過myFunc(new wrap(1, "one"), new wrap(2, "two"), new wrap(3, "three"));
來撥打舊方法?
編輯2:
好吧,不。那是我混亂的錯。
對於
myFunc(1);
myFunc(1, 2);
myFunc(1, 2, 3);
的舊的方法應該是
myFunc(new int[]{1});
myFunc(new int[]{1, 2});
myFunc(new int[]{1, 2, 3});
據我所看到的,作爲重複參數形成一個陣列。它的所有參數必須是相同的類型。以簡單的方式實現上述呼叫應該是不可能的。爲了好奇,我開始考慮操作符超載的可能性......(?)
感謝@NilsH。然而,在使用時,用戶必須執行'myFunc(新對(1,「一」),新對(2,「2」),新對(3,「3」);',不是嗎?縮短了嗎?或者在更方便的方式使用? – midnite
是的,你就必須做到這一點。如果你不想這樣,你將不得不使用'對象...'然後檢查並投下你的方法裏面的參數,而不是。但是,這將開闢你的方法的不正確使用,所以我不會建議。 – NilsH
燁確實如此。和使用'對象...'能不能守住的參數的個數是偶數,對嗎? – midnite