8

質問に答えるとき、私はメソッド名とオンラインドキュメントを頻繁に参照していることに気付きます。メソッド名をテキストで参照する方法について混乱しています。

たとえば、私はよく次のように入力します。

String.equals()2つの文字列が等しいかどうかを比較するために使用する必要があります。

ただし、これは少し誤解を招く可能性があります。

  1. equals()静的メンバーのように見えます。
  2. それはequals()議論をしないように見えます。

完全を期すために、私は知りたいです:

静的メンバーとインスタンスメンバーの両方を参照する正しい方法は何ですか?

私は次のようなものを見てきました:

  • String.equals()
  • String#equals()
  • myString.equals()

引数にとらわれない方法でメソッドを参照する方法はありますか?

たとえば、Cfoo(void)では明示的にゼロ引数関数であり、foo()後で別の引数セットを持つように再定義できます。(?)

4

7 に答える 7

5

あなたが本当に正確になりたいなら、あなたは使うことができます

java.lang.String#equals(java.lang.Object)

または短い形式

String#equals(Object)

これは、javadocで使用されている表記法に似ており、興味深いことに、次で終わるドキュメントへのリンクにも似ています。

String.html#equals(java.lang.Object)

編集:参照の使用方法を説明するjavadocドキュメントへのリンクは次のとおりです。

于 2011-03-10T20:09:01.417 に答える
2

String.equals

引数の型を指定したい場合String.equals(Object)

括弧(equals())の追加はCです。特にANSICの場合、引数なしの関数は次のように記述されますtostring(void)(K&R / PCC Cを覚えるには実際には若すぎます(!))。C++はそれを修正しました-それで()本当にかなり古い学校です。

于 2011-03-10T20:21:48.553 に答える
2

Stringのequalsメソッドのドキュメントへのリンクにより、あいまいさが解消されることがわかりました。

于 2011-03-10T20:00:38.203 に答える
2

myString.equals()を使用しても、myStringがStringのインスタンスであることを明確に述べない限り、意味がありません。javadocはString#equals()を使用するため、ほとんどの開発者はこれを読みやすく理解できるはずです。これが私の選択です。

于 2011-03-10T20:01:00.897 に答える
1

私は通常、クラスとメソッドの名前を参照しますが、読者がそれを使用してドキュメントを追跡できることを期待しています。おそらくそれは少し傲慢です。知らない。

メソッドのどのシグニチャを使用するかを明確にしようとしている場合は、通常、サンプルコードを提供します。これは主に、説明を手書きで書くよりも簡単だと思うからです。

于 2011-03-10T20:00:52.983 に答える
1

myString.equals()完璧です。これはタイプを意味し、インスタンスについて話していることを明確にします。

追加することもできます:

myString.equals(aString)

于 2011-03-10T20:03:18.823 に答える
0

メソッドを参照するときは、「String.equals()」を使用します。これは人間の読者のためのものであり、彼らはあなたが文脈から何について話しているのかを知っている可能性があります。混乱する可能性がある場合は、「メソッドString.equals()」とだけ言ってください。

One should use String.equals() for comparing two strings for equality.

真剣に、誰がこの文に混乱するだろうか?だから心配しないでください。それはただの英語であり、あなたに怒鳴るコンパイラはありません。

于 2011-03-10T21:11:20.177 に答える