23

インターフェイスメソッドを作成するとき、 Javaのようなことはできません:

void interface_method(Integer,String, /* other parameter */);

代わりに、パラメータ名にlileを付ける必要があることに気づきました。

void interface_method(Integer i, String s);

また、インターフェイスの実装者は、インターフェイスメソッドと同じパラメータ名を持つ必要はありません。

ここでc#について同様の質問を見つけました。名前付きパラメーターの1つのシナリオについて言及していますが、特にJavaで他の関連する理由は見つかりません。

4

3 に答える 3

28

技術的な観点からは、それは必要ありません。

私は常にそれを構文の正規化とドキュメンテーションの補助としてとらえてきました。

このようにあります:

  1. クラスメソッドとインターフェイスメソッドの構文を区別する理由はありません。
  2. デフォルトのJavadocドキュメントは、(説明的な!)パラメータ名を使用して生成できます。
于 2012-06-12T13:58:09.160 に答える
15

パラメータ名がないと、同じタイプのパラメータを区別するのが非常に難しくなります。

double divide(double, double);

慣例では、2番目のパラメーターは除数になるとされています。ただし、名前付きパラメーターを使用すると、明示的ではるかに明確になります。次に、ドキュメントでは、メソッドの使用方法と各パラメーターの意味を説明するときに、「最初のパラメーター」または「2番目のパラメーター」と継続的に言う代わりに、名前を明確に使用できます。

于 2012-06-12T13:58:56.927 に答える
5

これについての私の見解:

  1. これは、名前を持つパラメーターの言語仕様にあります。

  2. インターフェイスはインターフェイスであり、名前は意味を伝えるのに役立ちます。

  3. インターフェイスは、実際にはC / C ++のように続く実装の前方宣言ではないため、比較は完全には正しくありません。

于 2012-06-12T13:58:41.533 に答える