關於java多引數的傳值問題解析

2021-08-13 12:55:44 字數 845 閱讀 9022

有時候,我們傳入到方法的引數的個數是不固定的,為了解決這個問題,我們一般採用下面的方法:

過載,多過載幾個方法,盡可能的滿足引數的個數。顯然這不是什麼好辦法。

將引數作為乙個陣列傳入。雖然這樣我們只需乙個方法即可,但是,為了傳遞這個陣列,我們需要先宣告乙個陣列,然後將引數乙個乙個加到陣列中。

現在,我們可以使用可變長引數解決這個問題。

宣告可變長引數方式如下:

public

void

mymethod(string arg1,object… args)

也就是使用…將引數宣告成可變長引數。顯然,可變長引數必須是最後乙個引數。

請看下面唐僧師傅給悟空講佛經的例子:

public

class varargs1

}public

static

void

main(string args)

}

其中speak中的引數被宣告成可變長的引數,所以你可以傳遞給speak方法多個引數。

我沒有發現可變引數有什麼太大的用處,在j2ee的框架開發中幾乎用不到,不過當有時候我們不確定引數到底有幾個時倒是可以用這種方式來代替以往傳遞乙個陣列的方式。

可變引數同時可以跟固定的引數混合使用。但同時可變引數有一些限制:乙個方法的引數中不能同時擁有2種型別的可變引數,也就是說:

public void foo(string ... str,integer ... i)這樣是不行的

java引數傳值 傳引用

1 結論 2 傳值和傳引用區別 例項1 傳值 void method1 7 void method2 13 voidchange1 stringbuffer sb 17 voidchange2 stringbuffer sb 呼叫method1 螢幕列印結果為 helloworld 呼叫method...

java 傳值問題

public class cat public void setid string id public string getname public void setname string name public cat string id,string name private static voi...

MyBatis傳多引數的問題

在做資料庫操作的時候,經常要傳多引數進sql語句,以前版本的ibatis,不支援直接傳多個引數進來,只能壓入物件或者hashmap中,這樣實在不是很方便。在現在的版本,終於有了支援。官方文件 你可以傳遞多個引數給乙個對映器方法。如果你這樣做了,預設情況下它們將會以它們 在引數列表中的位置來命名,比如...