今日、jre1.6.0_27 HashMap values() メソッドのソースコードを開きました
389 public Set<K> keySet()
390 {
391 Set localSet = this.keySet;
392 return (this.keySet = new KeySet(null));
393 }
394
395 public Collection<V> values()
396 {
397 Collection localCollection = this.values;
398 return (this.values = new Values(null));
399 }
これらのソースコードはエラーだと思いますが、なぜこのようになっているのかわかりません。誰が理由を教えてくれますか?
=======================================
皆さんありがとうございます。これはEclipseの問題だと思います。このソースコードはEclipse F3を使用して行ったので、上記のようになります。
src.zip を開くだけで、このメソッドのソースコードは正しいです。
/**
* Returns a {@link Collection} view of the values contained in this map.
* The collection is backed by the map, so changes to the map are
* reflected in the collection, and vice-versa. If the map is
* modified while an iteration over the collection is in progress
* (except through the iterator's own <tt>remove</tt> operation),
* the results of the iteration are undefined. The collection
* supports element removal, which removes the corresponding
* mapping from the map, via the <tt>Iterator.remove</tt>,
* <tt>Collection.remove</tt>, <tt>removeAll</tt>,
* <tt>retainAll</tt> and <tt>clear</tt> operations. It does not
* support the <tt>add</tt> or <tt>addAll</tt> operations.
*/
903 public Collection<V> values() {
904 Collection<V> vs = values;
905 return (vs != null ? vs : (values = new Values()));
906 }