2011-03-10 6 views
7

質問に答えるには、メソッド名とオンラインドキュメントを頻繁に参照しています。私はメソッド名をテキストでどのように参照するべきかについて混乱しています。例えばテキストでJavaメンバーを参照する正しい方法は何ですか?

私は頻繁に入力します。

一つは平等のための2つの文字列を比較する ためString.equals()を使用する必要があります。

しかし、これは少し誤解を招く:

  1. それはequals()は、静的メンバに見えます。
  2. equals()は引数をとらないようです。 complenessの関心で

、私は知っているしたいと思います:

静的メンバとインスタンスメンバの両方を参照するための正しい方法は何ですか?私はのようなものを見てきました

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

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

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

答えて

4

をあなたが本当に正確になりたい場合は、

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

または短い形式を使用することができ

String#equals(Object) 

これは似ていますjavadocで使われている表記法に興味深いことに似ている

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

編集:で終わるドキュメントへのリンクにここで参照を使用する方法を説明しjavadoc documentationへのリンクです。

+0

引数に依存しない形式もありますか? –

+2

その名前のメソッドが1つしかない場合は、もちろんパラメータの型を省略することができます。結局のところ、これは命名規則であり、厳しい規則ではありません。 –

+0

JavaDocで生成されたAPIドキュメントでは使用されていません。 –

2

Stringのequalsメソッドに関するドキュメントへのリンクがあいまいさを取り除いていることがわかりました。

+0

私は、ドキュメントへのリンクなしで正確にメンバーを参照できるはずですが、私は思っています。 –

+0

@Matthew:なぜそれをしたいですか?あなたはウェブ上にいる。ハイパーリンクは、他のリソースを参照するために受け入れられる方法です。それに一度リンクすれば、その後の言及ははっきりしているはずです。 –

+1

まあ、私は実際にString#equals(Object)へのハイパーリンクを常にしたくありません。私はそれに言及したい。それが答えの焦点では​​なく、むしろ単なる方法であるとふりをする。 –

1

一般的に、クラスとメソッドの名前は、読者がドキュメントを追跡するために使用できることを前提としています。おそらくそれは少し傲慢です。知りません。

私が使用する方法のの署名のポイントについて、私は通常サンプルコードを提供しようとしています。これは主に、長い記述を記述するよりも簡単に見つけるためです。

2

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

+0

私はまた、String#equals()による暗示が、引数のないメソッドであることにも関心があります。 –

+1

"String#equals'メソッドを書くことができます - 括弧をつけずに" method "という単語を追加すると、いくつかのメソッド(おそらくいくつかのメソッド)への非決定論的参照を'String'クラスです。 –

1

myString.equals()が完璧です。 は、タイプがであることを意味し、インスタンスについて話していることが明らかになっています。

あなたも追加することができます。

myString.equals(aString)

+0

私はこれが初心者に例を与えるための最良の方法だと思う。 –

2

String.equals

引数タイプをString.equals(Object)にしたい場合は、

括弧(equals())を追加することはCです。特にANSI Cの場合、引数なしの関数はtostring(void)と書かれています(私は実際にはK & R/PCC Cを覚えておくには若すぎます! C++はそれを修正しました - だから()は本当にかなり古い学校です。

+0

再び、これは、equalsが静的メンバーであることを暗示しているようです。 –

+0

'.'はJavaの名前の修飾に使用されます。これは「わずかに修飾された名前」です。実際、スタックトレースにはドットとして表示されます。 –

0

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

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

、?だから心配しないでください。それはちょうど英語ですが、コンパイラはあなたに叫んでいません。

関連する問題