1

複数の引数を受け入れるメソッドがあります:void doodle(Object o, Object... objects)

objects実際の配列なのか、複数の引数から構築された配列なのかを区別する方法はありますか?

のようなメソッドのオーバーロードはvoid doodle(Object o, Object[] objects)、Javaでは許可されていません。

4

1 に答える 1

3

本当の違いはないので、区別する方法はありません。

Object...糖衣構文にすぎません。内部では、実際のメソッドシグネチャにはObject[]、オーバーロードできない理由があります。基本的には同じです。

特定のユースケースでは、メソッドにvarargsがあるかどうかをテストし、それに応じて視覚化を作成できます。これが役立つかどうかを確認してください。

http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html#isV​​arArgs%28%29

于 2012-08-01T10:52:19.043 に答える