0

私は Java に比較的慣れていませんが、Java のドキュメントを読んでいると、今まで見たことのないメソッドに出くわします。オラクルで使用されている規則がわからないため、メソッドの正しい使用方法について混乱することがあります。

String クラス ページの次の例を検討してください。

contains(CharSequence s) 
Returns true if and only if this string contains the specified sequence of char values.

私は疑問に思いました:

CharSequenceリテラル値ですか?s変数が でなければならないことを表していますCharSequenceか? このメソッドを使用するための適切な構文は何ですか?

さらに掘り下げた後に明らかになりましたが、ある種のメタドキュメントを知っていれば、検索をかなり絞り込むことができたと思います. 「例では常に代表的なデータを使用します」、「リテラルは常に太字で表示」、「すでに定義済みと推定される変数は常にイタリック体で表示」などの文書がどこかにあれば素晴らしいと思います。

たとえば、上記の例では、わかりやすくするために次のように表示します。

contains(s) 
where s is a user-defined variable of type CharSequence 
Returns true if and only if this string contains the specified sequence of char values.

ドキュメンテーションを文書化するものを見つけることができず、ほとんどの検索で JavaDoc に関する結果が返されました。誰かがそれについて知っているなら、私はリンクが大好きです。

4

2 に答える 2

2

「リテラル値」とはどういう意味ですか? It ( CharSequence) は、 という名前のパラメーターの型ですs

構文はcontains、文字列インスタンスで呼び出すことです。a CharSequence(例: a String) を渡すと、それを呼び出しているインスタンスに渡された値が含まれているかどうかを示すブール値が返されます。

String s = "foobar";
System.out.println(s.contains("ooba")); // true
System.out.println(s.contains("ohai")); // false

これは Javadoc を理解していないこととは何の関係もありません。これは Java を理解していないということです。

ただし、この場合、混乱がどこにあるのかわかりません。Java が OOPL であることを知っていて、プリミティブを除いて、インスタンスのメソッドを呼び出していると仮定すると (ここでは静的メソッドを無視します)、何が問題なのでしょうか? StringAPI は、文字列がCharSequence、このメソッドによって取得される型である-a であることを示しています。言い回しは、メソッドが何をするかを説明します。テスト コードは自明のようですが、私は偏ったサンプルです ;)

ドキュメンテーションの観点からはかなり明確であるため、Java の基本的な性質を理解することが問題であると想定する必要があります。そして、これまでに見たことのない方法に常に出くわします。そしてクラス。そしてパッケージ。そして図書館。Java EE はおろか、JDK だけでも何千ものメソッドがあり、ましてやあらゆる規模の Java アプリケーションで使用される他の何百ものライブラリは言うまでもありません。

些細な例; 仕事用の非常に小さなプロジェクトには、120 以上の依存関係があります。これらの 120 以上の依存関係には、2500 以上のクラスがあります。これらの 2500 以上のクラスには、約 16,000 のパブリック プロパティ (フィールド、メソッド、静的値) があります。これには、Java SE および Java EE API は含まれません。

おそらく、プロジェクト固有の API の 1,000 分の 1 を見たり使用したりしたことがあると思います。

于 2012-07-24T15:19:20.037 に答える
1

CharSequence は Java のインターフェースです。一般に、javadocs のメソッドを調べているときに、理解できないものがある場合は、マウスをその上に移動してみてください。あなたを助けるためのヘルプテキストがあります。たとえば、提供したリンクで、カーソルを CharSequence に移動すると、それが Java のインターフェースであることがわかります。

ドキュメントの理解は、Java の理解とともに向上します。

于 2012-07-24T15:24:35.827 に答える