簡體   English   中英

如何創建一個接受Java中任何類型的任意數量的參數的方法?

[英]How to make a method which accepts any number of arguments of any type in Java?

我可以看到在Java中有一種方法可以接受任意數量的指定類型的參數: http//www.java-tips.org/java-se-tips/java.lang/how-to-傳遞非指定數的論點對am.html

但有沒有辦法使一個方法接受任何類型的任何數量的參數?

所有Java對象都擴展了Object類。 所以你可以使你的函數接受一個Object數組:

public void func(Object[] args) {
}

或者如果你想要什么都不通過:

public void func(Object... args) {
}
public void omnivore(Object... args) {
   // what now?
}

在Java中,任何引用類型(對象和數組)的變量(包括某些泛型類型的變量,甚至通配符)都可以傳遞給Object類型的參數。 任何基本類型的變量都可以自動裝箱到其相應的包裝類型,這是一種引用類型,因此可以作為Object傳遞。 因此, Object...將接受任何數量的任何東西。

使用以下語法:

void myMethod(Object... args) {
    // Here, args is an array of java.lang.Object:
    // you can take its length, get its elements with [i] operator,
    // and so on.
}

你得到的最接近的是someMethod(Object ... args)

嚴格來說,這不接受所有參數類型。 具體來說,它不接受原始類型:這些需要裝入相應的包裝類型。 通常這沒有區別。 但是如果你需要區分被調用方法中的原始類型和包裝類型,它就會這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM