この方法は、リフレクションを通じてパラメータの任意の数を有する場合に区別

フランシスLordan:

それを呼び出すためにリフレクションを使用している場合、これらの2つのメソッドを区別するための方法はありますか?

public void method(Object[] args) {}

public void method(Object... args) {}
なスロー:

かどうかをテストすることができますParameter可変引数パラメータを経由していますParameter#isVarArgs()

戻り値trueこのパラメータは、可変引数リストを表す場合は、戻りfalseそう。


Executableインタフェースは有する同様の方法の両方を、ConstructorそしてMethod実装します。

戻り値trueこの実行ファイルは、可変数の引数を取るように宣言された場合は、戻りfalseそう。


私が正しく理解していればしかし、なぜあなたはこの質問を求めている、この情報を知ることは、あなたを助けにはなりません。パラメータがあるかどうかは、あなたが呼ぶような方法には影響しません可変引数Method#invokeGhostCatで述べたとFerrybigによりを示唆したとして、あなたは(1つの引数として)のいずれかの方法を、配列を渡す必要があります。参照してくださいこの質問をいくつかの例について。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=227050&siteId=1