Java OOPとJava API /ソースコードの配置に関する次のような状況が混乱しています。 Oracle's Java 8 APIに基づいて、hasNext()は抽象メソッドですが、hasNext()が実装されている場所を見つけることができませんでした。私はプライベート内部クラスは、各コレクションクラスの異なるIteratorsを実装するために使用されているが、実装の場所を見つける方法についての情報はありません。 Eclipse IDEにJava JRE 1.8ソースコードを追加するようユーザーに提案しましたが、Iteratorインターフェースで抽象メソッドとして宣言されているのはboolean hasNext();
です。抽象メソッドhasNext()の実装を見つけるにはどうすればよいですか?
以下に示す例では、イテレータobjはhasNext()を直接実装しないで使用します。しかし、私はインターフェイスに抽象メソッドを実装する必要があることを教えられました。
私の質問:
(1)抽象メソッドhasNext()の実装を見つけるにはどうすればよいですか? (2)コメントでコードhereが見つかります。 ArrayListクラスにhasNext()を実装する理由は何ですか?hasNext()を抽象メソッドとしてマークしますか?このようにhasNext()の実装を見つけるのは直感的ではありません。
List<String> list = new ArrayList<String>();
list.add("item-1");
list.add("item-2");
list.add("item-3");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
どのIDEを使用していますか? IntelliJ IDEAでは、メソッドを選択し、Ctrlキーを押しながらマウスの左ボタンをクリックすると、メソッドが記述されているコードのポイントまでまっすぐに移動します。 –
ここにあります。 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/ArrayList.java#748 –
「Where is * ArrayListの* Iterator.hasNext()が実装されています。これが当てはまる場合(特に1つの実装を探している場合)、その質問の中でそう言えば役に立ちます。 – dimo414