Ⅰ java方法參數
樓上說得不對,Integer 繼承 java.lang.Number , Number 實現了 java.io.Serializable
范性的問題 Class<Object> 你傳入的只能是 Object.class
把介面方法改成
public Object findByPrimarykey(Class<? extends Object> objectClass, Serializable pk);
或者
public Object findByPrimarykey(Class<?> objectClass, Serializable pk);
Ⅱ java里參數的作用
設置了這個參數,那麼你調用它的時候就可以傳遞進去,像你給的例子中s.speek("i
am
a
student");中i
am
a
student就是傳過去的參數,好比string
sentence
=
"i
am
a
student";
Ⅲ java 方法可以傳入多少個參數
java的方法可以動態傳入參數,比如methodA(String... values),它相當於傳進入一個values的數組,因此在你的內存支持的情況下,參數個數可以是無限個的。
Ⅳ java 方法參數的問題
通俗點說:小括弧內的參數是在調用這個方法時,需要給這個方法傳入的參數,用於給此方調用.比如說,有些方法是需要調用者傳參,方法才能對參數進行操作!
Ⅳ JAVA中 方法後參數列表
//Personperson就跟inta是一樣的,只不過一個是Person類型,一個是int類型。int是基本數據類型,Person這種引用數據類型。參數列表不能放方法
Ⅵ java 參數中含有… 是什麼意思啊
main方法的簽名其實可以這樣寫:
public static void main(String... args)//方法1
它也可以運行.
並且,如果同時還存在
public static void main(String[] args)//方法2
會報已經存在重復的方法的錯誤.
由此可見,String... args跟String[] args對於虛擬機來說其實是一回事.
而且,在方法內,通過...傳進來的參數的使用方法也跟一個數組完全無二,可以for循環,甚至可以直接轉換:
public static void main(String... args)
{
String[] ss=args;
}
但對於程序員來說卻還是有差別的.
1.調用
我們只能這樣調用方法2:
main(new String[]{});
即,方法2隻能接受String數組做參數.
而我們陌生的方法1可強了,用以下參數調用,照單全收:
main();
main(null);
main(null,null);
main(null,null,null);
......
main("a");
main("a","b");
main("a","b","c");
......
main(new String[]{});
(String...匹配String*,而null也可以是一個特殊的String)
2.參數位置
使用...的參數只能是最後一個參數.不然誰知道你調用的時候,點點點匹配到哪個實參?
public static void main(String[] args,int index)//可以
public static void main(String... args,int index)//不行!
3.重載
假設有以下兩個方法:
public static void main(String... args)//方法1
public static void main(String a,String... args)//方法3
從語法上來看,這個重載完全沒有錯誤,eclipse也沒有報錯.但是當調用時使用的參數個數大於這些方法中點點點參數前面的參數個數時,eclipse就會發現這個錯誤了.很拗口是不是?嘿嘿~還是舉例來說吧.以上這兩個方法,如果調用時
main();
編譯器會認出這個調用的是方法1.但是如果調用時
main("");
編譯器就瘋了...因為一個String參數,既符合方法1的點點點,也符合方法3的String+點點點,編譯器就不知道調用的是哪個方法了.
String[]參數不會有這種問題.
所以重載時要注意,如果點點點參數前面有跟它類型相同的參數...最好的方法,似乎就是換回數組形式了,要麼就給方法改個名字吧.
4.遇上泛型加外包
用個實例來說
java.util.Arrays是個工具類,所有方法都是靜態的,對數組的操作.裡面有個方法asList(T... args),用來把類型T的數組轉化成List<T>.
這是個很有用的方法,在絕大多數情況下都能如你所願.
但是,你可以試試下面的寫法
int[] is=...//自定義的數組,或者從什麼地方獲取來的數組
List<Integer> list=Arrays.asList(is);
很不幸,不要說執行,編譯都通不過.錯誤的意思大概是:
不能將List<int[]>轉化成List<Integer>
明白了吧?
你的設想是,把int[]中的每一個元素對應T...中的每一個點,
可編譯器不這么想.因為int是原始類型,不是Object的子類.而泛型T隱含的條件是T extends Object.所以編譯器不會把每一個int看做T,不會把int[]看做T點點點.雖然java已經支持自動將原始類型封包成外包類,但那是單個的情況.
而數組(不管什麼類型)則是一種特殊的類型,是Object的子類,所以編譯器覺得整個int[]對應一個T,你調用的方法是asList<int[]>(int[]... args)而不是你想像中的asList<Integer>(Integer...)
Ⅶ java參數是什麼
形參,實參
Ⅷ 請問什麼是Java中的參數。
首先你得知道什麼是方法吧,要是這個不懂,那下面我說的估計你也不會明白了,就直接無視吧。
例如我自己寫一個方法,比如說這個方法屬於test類,像這樣
public static void myMethod(String str) {
System.out.println(str);
}
在我調用這個方法的時候,我就需要傳遞一個參數給這個方法,比如這樣。
test.myMethod("let's do it");
那麼這個"let's do it"就是參數,如果你想要用myMethod這個方法,必須要給一個string型的參數,不然編譯器就不會讓你通過,你的代碼會報錯的。參數作用無非是將你需要用的東西傳遞給方法,在方法裡面處理這個參數,比如說你要輸出,或者要在方法裡面做四則運算等等。
這個問題其實不好說,因為實在是很簡單,但是要說明這個問題就會引出一大堆問題,什麼是方法,什麼是類,static是什麼,void是幹啥的,這玩意我解釋不起,我只能盡我所能簡單說說。如果你要真想學java,先找本書看看吧,我覺得你可能沒看過哪怕是一本java基礎的書,要不然也不會問這個問題。
Ⅸ java 可變參數是什麼
java 可變參數是1.5版本的新特性,也就是說用戶若是想定義一個方法,但是在此之前並不知道以後要用的時候想傳幾個參數進去,可以在方法的參數列表中寫參數類型或者數組名,然後在方法內部直接用操作數組的方式操作。
java可變長的形參聲明格式:dataType...parameters。
其中,省略號表示數據類型為dataType的parameters參數個數不固定的,可為任意個。此外,在方法調用時,變長形式參數可被替換成1個、2個或多個參數。在編譯時,方法的變長參數將被看成具有相同類型的一維數組。
在java語言開發中,從JDK1.5以後,java允許定義形參長度可變的參數從而允許為方法指定數量不確定的形參。
Ⅹ java中參數變數具體是什麼,可以干什麼,有什麼作用,
參數變數就是一個函數要被調用時候,傳進去的那個東西,也叫 形參
留一個可以變化的東西給別人可以根據需要使用,
在JAVA中 參數變數有傳值和傳引用兩種,基本上都是傳引用