2016-07-09 3 views
1

私はjavaのvar-argsに関するメモを読みました。私は、メソッドを呼び出すときに配列パラメーターとの違いを知りました。配列パラメータを持つメソッドとjavaのvar-argsを渡す方法の違いは何ですか?

public void doSomething(int[] a){ 
    // some logic here 
} 
public void doSometing(int... a){ 
    // some logic here 
} 

上記2つの方法が

int[] x={1,2,3,4,5}; 
doSomething(x); 

によって呼び出されたそれらの両方が同じであるか、またはいくつかの違いが存在しますか?

これらの2つの方法をオーバーロードすることはできますか?

+2

varargsでは、配列を作成する必要はありません。すなわち: '' 'doSomething(1,2,3,4,5);' '' –

答えて

2

2つのメソッドシグネチャは同じで、オーバーロードが許可されていません。

唯一の違いは、varargシグネチャを使用してdoSomething(1, 2, 3)を呼び出すことは許可されていますが、配列シグネチャで同じものを呼び出すとエラーが発生することです。

関連する問題