and the beer flowed.... Mark Hindess wrote: > This breaks the build. I'm getting: > > compile: > [javac] Compiling 1839 source files to /pbuilder/tmp/Harmony.clean/build > [javac] > /pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074: > name clash: add(java.lang.Object) in > java.util.Collections.UnmodifiableCollection<java.util.Map.Entry<K,V>> and > add(E) in java.util.Set<java.util.Map.Entry<K,V>> have the same erasure, yet > neither overrides the other > [javac] private static class UnmodifiableEntrySet<K, V> > extends UnmodifiableSet<Map.Entry<K, V>> { > [javac] ^ > > w/sun 1.5 javac on linux. > > Regards, > Mark. > > On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote: >> Author: ndbeyer >> Date: Thu Jun 8 21:59:15 2006 >> New Revision: 412928 >> >> URL: http://svn.apache.org/viewvc?rev=412928&view=rev >> Log: >> Generification of methods. >> >> Modified: >> incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java >> /util/Collections.java >> >> Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav >> a/java/util/Collections.java >> URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m >> odules/luni/src/main/java/java/util/Collections.java?rev=412928&r1=412927&r2= >> 412928&view=diff >> ============================================================================= >> = >> --- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java >> /util/Collections.java (original) >> +++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java >> /util/Collections.java Thu Jun 8 21:59:15 2006 >> @@ -27,15 +27,15 @@ >> */ >> public class Collections { >> >> - private static final class CopiesList extends AbstractList implements >> + private static final class CopiesList<E> extends AbstractList<E> implem >> ents >> Serializable { >> private static final long serialVersionUID = 273909926839871180 >> 0L; >> >> private final int n; >> >> - private final Object element; >> + private final E element; >> >> - CopiesList(int length, Object object) { >> + CopiesList(int length, E object) { >> if (length < 0) { >> throw new IllegalArgumentException(); >> } >> @@ -51,7 +51,7 @@ >> return n; >> } >> >> - public Object get(int location) { >> + public E get(int location) { >> if (0 <= location && location < n) >> return element; >> throw new IndexOutOfBoundsException(); >> @@ -162,13 +162,13 @@ >> } >> } >> >> - private static final class SingletonSet extends AbstractSet implements >> + private static final class SingletonSet<E> extends AbstractSet<E> imple >> ments >> Serializable { >> private static final long serialVersionUID = 319368720755043167 >> 9L; >> >> - final Object element; >> + final E element; >> >> - SingletonSet(Object object) { >> + SingletonSet(E object) { >> element = object; >> } >> >> @@ -180,15 +180,15 @@ >> return 1; >> } >> >> - public Iterator iterator() { >> - return new Iterator() { >> + public Iterator<E> iterator() { >> + return new Iterator<E>() { >> boolean hasNext = true; >> >> public boolean hasNext() { >> return hasNext; >> } >> >> - public Object next() { >> + public E next() { >> if (hasNext) { >> hasNext = false; >> return element; >> @@ -203,13 +203,13 @@ >> } >> } >> >> - private static final class SingletonList extends AbstractList implement >> s >> + private static final class SingletonList<E> extends AbstractList<E> imp >> lements >> Serializable { >> private static final long serialVersionUID = 309373661874065295 >> 1L; >> >> - final Object element; >> + final E element; >> >> - SingletonList(Object object) { >> + SingletonList(E object) { >> element = object; >> } >> >> @@ -217,7 +217,7 @@ >> return element == null ? object == null : element.equal >> s(object); >> } >> >> - public Object get(int location) { >> + public E get(int location) { >> if (location == 0) >> return element; >> throw new IndexOutOfBoundsException(); >> @@ -228,13 +228,14 @@ >> } >> } >> >> - private static final class SingletonMap extends AbstractMap implements >> + private static final class SingletonMap<K, V> extends AbstractMap<K, V> >> implements >> Serializable { >> private static final long serialVersionUID = -69797244772150529 >> 11L; >> >> - final Object k, v; >> + final K k; >> + final V v; >> >> - SingletonMap(Object key, Object value) { >> + SingletonMap(K key, V value) { >> k = key; >> v = value; >> } >> @@ -247,7 +248,7 @@ >> return v == null ? value == null : v.equals(value); >> } >> >> - public Object get(Object key) { >> + public V get(Object key) { >> if (containsKey(key)) >> return v; >> return null; >> @@ -257,11 +258,11 @@ >> return 1; >> } >> >> - public Set entrySet() { >> - return new AbstractSet() { >> + public Set<Map.Entry<K, V>> entrySet() { >> + return new AbstractSet<Map.Entry<K, V>>() { >> public boolean contains(Object object) { >> if (object instanceof Map.Entry) { >> - Map.Entry entry = (Map.Entry) o >> bject; >> + Map.Entry<?, ?> entry = (Map.En >> try) object; >> return containsKey(entry.getKey >> ()) >> && containsValu >> e(entry.getValue()); >> } >> @@ -272,27 +273,27 @@ >> return 1; >> } >> >> - public Iterator iterator() { >> - return new Iterator() { >> + public Iterator<Map.Entry<K, V>> iterator() { >> + return new Iterator<Map.Entry<K, V>>() >> { >> boolean hasNext = true; >> >> public boolean hasNext() { >> return hasNext; >> } >> >> - public Object next() { >> + public Map.Entry<K, V> next() { >> if (hasNext) { >> hasNext = false >> ; >> - return new Map. >> Entry() { >> + return new Map. >> Entry<K, V>() { >> public >> boolean equals(Object object) { >> >> return contains(object); >> } >> >> - public >> Object getKey() { >> + public >> K getKey() { >> >> return k; >> } >> >> - public >> Object getValue() { >> + public >> V getValue() { >> >> return v; >> } >> >> @@ -301,7 +302,7 @@ >> >> ^ (v == null ? 0 : v.hashCode()); >> } >> >> - public >> Object setValue(Object value) { >> + public >> V setValue(V value) { >> >> throw new UnsupportedOperationException(); >> } >> }; >> @@ -318,29 +319,29 @@ >> } >> } >> >> - static class SynchronizedCollection implements Collection, Serializable >> { >> + static class SynchronizedCollection<E> implements Collection<E>, Serial >> izable { >> private static final long serialVersionUID = 305399503209133509 >> 3L; >> >> - final Collection c; >> + final Collection<E> c; >> final Object mutex; >> >> - SynchronizedCollection(Collection collection) { >> + SynchronizedCollection(Collection<E> collection) { >> c = collection; >> mutex = this; >> } >> >> - SynchronizedCollection(Collection collection, Object mutex) { >> + SynchronizedCollection(Collection<E> collection, Object mutex) >> { >> c = collection; >> this.mutex = mutex; >> } >> >> - public boolean add(Object object) { >> + public boolean add(E object) { >> synchronized (mutex) { >> return c.add(object); >> } >> } >> >> - public boolean addAll(Collection collection) { >> + public boolean addAll(Collection<? extends E> collection) { >> synchronized (mutex) { >> return c.addAll(collection); >> } >> @@ -358,7 +359,7 @@ >> } >> } >> >> - public boolean containsAll(Collection collection) { >> + public boolean containsAll(Collection<?> collection) { >> synchronized (mutex) { >> return c.containsAll(collection); >> } >> @@ -370,7 +371,7 @@ >> } >> } >> >> - public Iterator iterator() { >> + public Iterator<E> iterator() { >> synchronized (mutex) { >> return c.iterator(); >> } >> @@ -382,13 +383,13 @@ >> } >> } >> >> - public boolean removeAll(Collection collection) { >> + public boolean removeAll(Collection<?> collection) { >> synchronized (mutex) { >> return c.removeAll(collection); >> } >> } >> >> - public boolean retainAll(Collection collection) { >> + public boolean retainAll(Collection<?> collection) { >> synchronized (mutex) { >> return c.retainAll(collection); >> } >> @@ -412,7 +413,7 @@ >> } >> } >> >> - public Object[] toArray(Object[] array) { >> + public <T> T[] toArray(T[] array) { >> synchronized (mutex) { >> return c.toArray(array); >> } >> @@ -425,21 +426,21 @@ >> } >> } >> >> - static class SynchronizedRandomAccessList extends SynchronizedList >> + static class SynchronizedRandomAccessList<E> extends SynchronizedList<E >> implements RandomAccess { >> private static final long serialVersionUID = 153067458360235848 >> 2L; >> >> - SynchronizedRandomAccessList(List l) { >> + SynchronizedRandomAccessList(List<E> l) { >> super(l); >> } >> >> - SynchronizedRandomAccessList(List l, Object mutex) { >> + SynchronizedRandomAccessList(List<E> l, Object mutex) { >> super(l, mutex); >> } >> >> - public List subList(int start, int end) { >> + public List<E> subList(int start, int end) { >> synchronized (mutex) { >> - return new SynchronizedRandomAccessList(list >> + return new SynchronizedRandomAccessList<E>(list >> .subList(start, end), mutex); >> } >> } >> @@ -455,33 +456,33 @@ >> * @see SynchronizedList#readResolve() >> */ >> private Object writeReplace() { >> - return new SynchronizedList(list); >> + return new SynchronizedList<E>(list); >> } >> } >> >> - static class SynchronizedList extends SynchronizedCollection implements >> - List { >> + static class SynchronizedList<E> extends SynchronizedCollection<E> impl >> ements >> + List<E> { >> private static final long serialVersionUID = -77540903729629715 >> 24L; >> >> - final List list; >> + final List<E> list; >> >> - SynchronizedList(List l) { >> + SynchronizedList(List<E> l) { >> super(l); >> list = l; >> } >> >> - SynchronizedList(List l, Object mutex) { >> + SynchronizedList(List<E> l, Object mutex) { >> super(l, mutex); >> list = l; >> } >> >> - public void add(int location, Object object) { >> + public void add(int location, E object) { >> synchronized (mutex) { >> list.add(location, object); >> } >> } >> >> - public boolean addAll(int location, Collection collection) { >> + public boolean addAll(int location, Collection<? extends E> col >> lection) { >> synchronized (mutex) { >> return list.addAll(location, collection); >> } >> @@ -493,7 +494,7 @@ >> } >> } >> >> - public Object get(int location) { >> + public E get(int location) { >> synchronized (mutex) { >> return list.get(location); >> } >> @@ -517,33 +518,33 @@ >> } >> } >> >> - public ListIterator listIterator() { >> + public ListIterator<E> listIterator() { >> synchronized (mutex) { >> return list.listIterator(); >> } >> } >> >> - public ListIterator listIterator(int location) { >> + public ListIterator<E> listIterator(int location) { >> synchronized (mutex) { >> return list.listIterator(location); >> } >> } >> >> - public Object remove(int location) { >> + public E remove(int location) { >> synchronized (mutex) { >> return list.remove(location); >> } >> } >> >> - public Object set(int location, Object object) { >> + public E set(int location, E object) { >> synchronized (mutex) { >> return list.set(location, object); >> } >> } >> >> - public List subList(int start, int end) { >> + public List<E> subList(int start, int end) { >> synchronized (mutex) { >> - return new SynchronizedList(list.subList(start, >> end), mutex); >> + return new SynchronizedList<E>(list.subList(sta >> rt, end), mutex); >> } >> } >> >> @@ -569,24 +570,24 @@ >> */ >> private Object readResolve() { >> if (list instanceof RandomAccess) >> - return new SynchronizedRandomAccessList(list, m >> utex); >> + return new SynchronizedRandomAccessList<E>(list >> , mutex); >> else >> return this; >> } >> } >> >> - static class SynchronizedMap implements Map, Serializable { >> + static class SynchronizedMap<K, V> implements Map<K, V>, Serializable { >> private static final long serialVersionUID = 197819847965902271 >> 5L; >> >> - private final Map m; >> + private final Map<K, V> m; >> final Object mutex; >> >> - SynchronizedMap(Map map) { >> + SynchronizedMap(Map<K, V> map) { >> m = map; >> mutex = this; >> } >> >> - SynchronizedMap(Map map, Object mutex) { >> + SynchronizedMap(Map<K, V> map, Object mutex) { >> m = map; >> this.mutex = mutex; >> } >> @@ -609,9 +610,9 @@ >> } >> } >> >> - public Set entrySet() { >> + public Set<Map.Entry<K, V>> entrySet() { >> synchronized (mutex) { >> - return new SynchronizedSet(m.entrySet(), mutex) >> ; >> + return new SynchronizedSet<Map.Entry<K, V>>(m.e >> ntrySet(), mutex); >> } >> } >> >> @@ -621,7 +622,7 @@ >> } >> } >> >> - public Object get(Object key) { >> + public V get(Object key) { >> synchronized (mutex) { >> return m.get(key); >> } >> @@ -639,25 +640,25 @@ >> } >> } >> >> - public Set keySet() { >> + public Set<K> keySet() { >> synchronized (mutex) { >> - return new SynchronizedSet(m.keySet(), mutex); >> + return new SynchronizedSet<K>(m.keySet(), mutex >> ); >> } >> } >> >> - public Object put(Object key, Object value) { >> + public V put(K key, V value) { >> synchronized (mutex) { >> return m.put(key, value); >> } >> } >> >> - public void putAll(Map map) { >> + public void putAll(Map<? extends K, ? extends V> map) { >> synchronized (mutex) { >> m.putAll(map); >> } >> } >> >> - public Object remove(Object key) { >> + public V remove(Object key) { >> synchronized (mutex) { >> return m.remove(key); >> } >> @@ -669,9 +670,9 @@ >> } >> } >> >> - public Collection values() { >> + public Collection<V> values() { >> synchronized (mutex) { >> - return new SynchronizedCollection(m.values(), m >> utex); >> + return new SynchronizedCollection<V>(m.values() >> , mutex); >> } >> } >> >> @@ -688,14 +689,14 @@ >> } >> } >> >> - static class SynchronizedSet extends SynchronizedCollection implements >> Set { >> + static class SynchronizedSet<E> extends SynchronizedCollection<E> imple >> ments Set<E> { >> private static final long serialVersionUID = 487447009682186044 >> L; >> >> - SynchronizedSet(Set set) { >> + SynchronizedSet(Set<E> set) { >> super(set); >> } >> >> - SynchronizedSet(Set set, Object mutex) { >> + SynchronizedSet(Set<E> set, Object mutex) { >> super(set, mutex); >> } >> >> @@ -718,56 +719,56 @@ >> } >> } >> >> - static class SynchronizedSortedMap extends SynchronizedMap implements >> - SortedMap { >> + static class SynchronizedSortedMap<K, V> extends SynchronizedMap<K, V> >> implements >> + SortedMap<K, V> { >> private static final long serialVersionUID = -87981467694164837 >> 93L; >> >> - private final SortedMap sm; >> + private final SortedMap<K, V> sm; >> >> - SynchronizedSortedMap(SortedMap map) { >> + SynchronizedSortedMap(SortedMap<K, V> map) { >> super(map); >> sm = map; >> } >> >> - SynchronizedSortedMap(SortedMap map, Object mutex) { >> + SynchronizedSortedMap(SortedMap<K, V> map, Object mutex) { >> super(map, mutex); >> sm = map; >> } >> >> - public Comparator comparator() { >> + public Comparator<? super K> comparator() { >> synchronized (mutex) { >> return sm.comparator(); >> } >> } >> >> - public Object firstKey() { >> + public K firstKey() { >> synchronized (mutex) { >> return sm.firstKey(); >> } >> } >> >> - public SortedMap headMap(Object endKey) { >> + public SortedMap<K, V> headMap(K endKey) { >> synchronized (mutex) { >> - return new SynchronizedSortedMap(sm.headMap(end >> Key), mutex); >> + return new SynchronizedSortedMap<K, V>(sm.headM >> ap(endKey), mutex); >> } >> } >> >> - public Object lastKey() { >> + public K lastKey() { >> synchronized (mutex) { >> return sm.lastKey(); >> } >> } >> >> - public SortedMap subMap(Object startKey, Object endKey) { >> + public SortedMap<K, V> subMap(K startKey, K endKey) { >> synchronized (mutex) { >> - return new SynchronizedSortedMap(sm.subMap(star >> tKey, endKey), >> + return new SynchronizedSortedMap<K, V>(sm.subMa >> p(startKey, endKey), >> mutex); >> } >> } >> >> - public SortedMap tailMap(Object startKey) { >> + public SortedMap<K, V> tailMap(K startKey) { >> synchronized (mutex) { >> - return new SynchronizedSortedMap(sm.tailMap(sta >> rtKey), mutex); >> + return new SynchronizedSortedMap<K, V>(sm.tailM >> ap(startKey), mutex); >> } >> } >> >> @@ -778,55 +779,55 @@ >> } >> } >> >> - static class SynchronizedSortedSet extends SynchronizedSet implements >> - SortedSet { >> + static class SynchronizedSortedSet<E> extends SynchronizedSet<E> implem >> ents >> + SortedSet<E> { >> private static final long serialVersionUID = 869580131086212740 >> 6L; >> >> - private final SortedSet ss; >> + private final SortedSet<E> ss; >> >> - SynchronizedSortedSet(SortedSet set) { >> + SynchronizedSortedSet(SortedSet<E> set) { >> super(set); >> ss = set; >> } >> >> - SynchronizedSortedSet(SortedSet set, Object mutex) { >> + SynchronizedSortedSet(SortedSet<E> set, Object mutex) { >> super(set, mutex); >> ss = set; >> } >> >> - public Comparator comparator() { >> + public Comparator<? super E> comparator() { >> synchronized (mutex) { >> return ss.comparator(); >> } >> } >> >> - public Object first() { >> + public E first() { >> synchronized (mutex) { >> return ss.first(); >> } >> } >> >> - public SortedSet headSet(Object end) { >> + public SortedSet<E> headSet(E end) { >> synchronized (mutex) { >> - return new SynchronizedSortedSet(ss.headSet(end >> ), mutex); >> + return new SynchronizedSortedSet<E>(ss.headSet( >> end), mutex); >> } >> } >> >> - public Object last() { >> + public E last() { >> synchronized (mutex) { >> return ss.last(); >> } >> } >> >> - public SortedSet subSet(Object start, Object end) { >> + public SortedSet<E> subSet(E start, E end) { >> synchronized (mutex) { >> - return new SynchronizedSortedSet(ss.subSet(star >> t, end), mutex); >> + return new SynchronizedSortedSet<E>(ss.subSet(s >> tart, end), mutex); >> } >> } >> >> - public SortedSet tailSet(Object start) { >> + public SortedSet<E> tailSet(E start) { >> synchronized (mutex) { >> - return new SynchronizedSortedSet(ss.tailSet(sta >> rt), mutex); >> + return new SynchronizedSortedSet<E>(ss.tailSet( >> start), mutex); >> } >> } >> >> @@ -837,13 +838,13 @@ >> } >> } >> >> - private static class UnmodifiableCollection implements Collection, >> + private static class UnmodifiableCollection<E> implements Collection<E> >> , >> Serializable { >> private static final long serialVersionUID = 182001775257891407 >> 8L; >> >> - final Collection c; >> + final Collection<E> c; >> >> - UnmodifiableCollection(Collection collection) { >> + UnmodifiableCollection(Collection<E> collection) { >> c = collection; >> } >> >> @@ -851,7 +852,7 @@ >> throw new UnsupportedOperationException(); >> } >> >> - public boolean addAll(Collection collection) { >> + public boolean addAll(Collection<? extends E> collection) { >> throw new UnsupportedOperationException(); >> } >> >> @@ -863,7 +864,7 @@ >> return c.contains(object); >> } >> >> - public boolean containsAll(Collection collection) { >> + public boolean containsAll(Collection<?> collection) { >> return c.containsAll(collection); >> } >> >> @@ -871,15 +872,15 @@ >> return c.isEmpty(); >> } >> >> - public Iterator iterator() { >> - return new Iterator() { >> - Iterator iterator = c.iterator(); >> + public Iterator<E> iterator() { >> + return new Iterator<E>() { >> + Iterator<E> iterator = c.iterator(); >> >> public boolean hasNext() { >> return iterator.hasNext(); >> } >> >> - public Object next() { >> + public E next() { >> return iterator.next(); >> } >> >> @@ -893,11 +894,11 @@ >> throw new UnsupportedOperationException(); >> } >> >> - public boolean removeAll(Collection collection) { >> + public boolean removeAll(Collection<?> collection) { >> throw new UnsupportedOperationException(); >> } >> >> - public boolean retainAll(Collection collection) { >> + public boolean retainAll(Collection<?> collection) { >> throw new UnsupportedOperationException(); >> } >> >> @@ -905,11 +906,11 @@ >> return c.size(); >> } >> >> - public java.lang.Object[] toArray() { >> + public Object[] toArray() { >> return c.toArray(); >> } >> >> - public Object[] toArray(Object[] array) { >> + public <T> T[] toArray(T[] array) { >> return c.toArray(array); >> } >> >> @@ -918,16 +919,16 @@ >> } >> } >> >> - private static class UnmodifiableRandomAccessList extends UnmodifiableL >> ist >> + private static class UnmodifiableRandomAccessList<E> extends Unmodifiab >> leList<E> >> implements RandomAccess { >> private static final long serialVersionUID = -25423088369663820 >> 01L; >> >> - UnmodifiableRandomAccessList(List l) { >> + UnmodifiableRandomAccessList(List<E> l) { >> super(l); >> } >> >> - public List subList(int start, int end) { >> - return new UnmodifiableRandomAccessList(list.subList(st >> art, end)); >> + public List<E> subList(int start, int end) { >> + return new UnmodifiableRandomAccessList<E>(list.subList >> (start, end)); >> } >> >> /** >> @@ -941,26 +942,26 @@ >> * @see UnmodifiableList#readResolve() >> */ >> private Object writeReplace() { >> - return new UnmodifiableList(list); >> + return new UnmodifiableList<E>(list); >> } >> } >> >> - private static class UnmodifiableList extends UnmodifiableCollection >> - implements List { >> + private static class UnmodifiableList<E> extends UnmodifiableCollection >> <E> >> + implements List<E> { >> private static final long serialVersionUID = -28396735606524772 >> 8L; >> >> - final List list; >> + final List<E> list; >> >> - UnmodifiableList(List l) { >> + UnmodifiableList(List<E> l) { >> super(l); >> list = l; >> } >> >> - public void add(int location, Object object) { >> + public void add(int location, E object) { >> throw new UnsupportedOperationException(); >> } >> >> - public boolean addAll(int location, Collection collection) { >> + public boolean addAll(int location, Collection<? extends E> col >> lection) { >> throw new UnsupportedOperationException(); >> } >> >> @@ -968,7 +969,7 @@ >> return list.equals(object); >> } >> >> - public Object get(int location) { >> + public E get(int location) { >> return list.get(location); >> } >> >> @@ -984,15 +985,15 @@ >> return list.lastIndexOf(object); >> } >> >> - public ListIterator listIterator() { >> + public ListIterator<E> listIterator() { >> return listIterator(0); >> } >> >> - public ListIterator listIterator(final int location) { >> - return new ListIterator() { >> - ListIterator iterator = list.listIterator(locat >> ion); >> + public ListIterator<E> listIterator(final int location) { >> + return new ListIterator<E>() { >> + ListIterator<E> iterator = list.listIterator(lo >> cation); >> >> - public void add(Object object) { >> + public void add(E object) { >> throw new UnsupportedOperationException >> (); >> } >> >> @@ -1004,7 +1005,7 @@ >> return iterator.hasPrevious(); >> } >> >> - public Object next() { >> + public E next() { >> return iterator.next(); >> } >> >> @@ -1012,7 +1013,7 @@ >> return iterator.nextIndex(); >> } >> >> - public Object previous() { >> + public E previous() { >> return iterator.previous(); >> } >> >> @@ -1030,16 +1031,16 @@ >> }; >> } >> >> - public Object remove(int location) { >> + public E remove(int location) { >> throw new UnsupportedOperationException(); >> } >> >> - public Object set(int location, Object object) { >> + public E set(int location, E object) { >> throw new UnsupportedOperationException(); >> } >> >> - public List subList(int start, int end) { >> - return new UnmodifiableList(list.subList(start, end)); >> + public List<E> subList(int start, int end) { >> + return new UnmodifiableList<E>(list.subList(start, end) >> ); >> } >> >> /** >> @@ -1059,24 +1060,24 @@ >> */ >> private Object readResolve() { >> if (list instanceof RandomAccess) >> - return new UnmodifiableRandomAccessList(list); >> + return new UnmodifiableRandomAccessList<E>(list >> ); >> else >> return this; >> } >> } >> >> - private static class UnmodifiableMap implements Map, Serializable { >> + private static class UnmodifiableMap<K, V> implements Map<K, V>, Serial >> izable { >> private static final long serialVersionUID = -10342347285742860 >> 14L; >> >> - private final Map m; >> + private final Map<K, V> m; >> >> - private static class UnmodifiableEntrySet extends UnmodifiableS >> et { >> + private static class UnmodifiableEntrySet<K, V> extends Unmodif >> iableSet<Map.Entry<K, V>> { >> private static final long serialVersionUID = 7854390611 >> 657943733L; >> >> - private static class UnmodifiableMapEntry implements Ma >> p.Entry { >> - Map.Entry mapEntry; >> + private static class UnmodifiableMapEntry<K, V> impleme >> nts Map.Entry<K, V> { >> + Map.Entry<K, V> mapEntry; >> >> - UnmodifiableMapEntry(Map.Entry entry) { >> + UnmodifiableMapEntry(Map.Entry<K, V> entry) { >> mapEntry = entry; >> } >> >> @@ -1084,11 +1085,11 @@ >> return mapEntry.equals(object); >> } >> >> - public Object getKey() { >> + public K getKey() { >> return mapEntry.getKey(); >> } >> >> - public Object getValue() { >> + public V getValue() { >> return mapEntry.getValue(); >> } >> >> @@ -1096,7 +1097,7 @@ >> return mapEntry.hashCode(); >> } >> >> - public Object setValue(Object object) { >> + public V setValue(V object) { >> throw new UnsupportedOperationException >> (); >> } >> >> @@ -1105,21 +1106,20 @@ >> } >> } >> >> - UnmodifiableEntrySet(Set set) { >> + UnmodifiableEntrySet(Set<Map.Entry<K, V>> set) { >> super(set); >> } >> >> - public Iterator iterator() { >> - return new Iterator() { >> - Iterator iterator = c.iterator(); >> + public Iterator<Map.Entry<K, V>> iterator() { >> + return new Iterator<Map.Entry<K, V>>() { >> + Iterator<Map.Entry<K, V>> iterator = c. >> iterator(); >> >> public boolean hasNext() { >> return iterator.hasNext(); >> } >> >> - public Object next() { >> - return new UnmodifiableMapEntry >> ((Map.Entry) iterator >> - .next()); >> + public Map.Entry<K, V> next() { >> + return new UnmodifiableMapEntry >> <K, V>(iterator.next()); >> } >> >> public void remove() { >> @@ -1131,27 +1131,30 @@ >> public Object[] toArray() { >> int length = c.size(); >> Object[] result = new Object[length]; >> - Iterator it = iterator(); >> + Iterator<?> it = iterator(); >> for (int i = length; --i >= 0;) >> result[i] = it.next(); >> return result; >> } >> >> - public Object[] toArray(Object[] contents) { >> + public <T> T[] toArray(T[] contents) { >> int size = c.size(), index = 0; >> - Iterator it = iterator(); >> - if (size > contents.length) >> - contents = (Object[]) Array.newInstance >> (contents.getClass() >> - .getComponentType(), si >> ze); >> - while (index < size) >> - contents[index++] = it.next(); >> - if (index < contents.length) >> + Iterator<Map.Entry<K, V>> it = iterator(); >> + if (size > contents.length) { >> + Class<?> ct = contents.getClass().getComponentType(); >> + contents = (T[])Array.newInstance(ct, s >> ize); >> + } >> + while (index < size) { >> + contents[index++] = (T)it.next(); >> + } >> + if (index < contents.length) { >> contents[index] = null; >> + } >> return contents; >> } >> } >> >> - UnmodifiableMap(Map map) { >> + UnmodifiableMap(Map<K, V> map) { >> m = map; >> } >> >> @@ -1167,15 +1170,15 @@ >> return m.containsValue(value); >> } >> >> - public Set entrySet() { >> - return new UnmodifiableEntrySet(m.entrySet()); >> + public Set<Map.Entry<K, V>> entrySet() { >> + return new UnmodifiableEntrySet<K, V>(m.entrySet()); >> } >> >> public boolean equals(Object object) { >> return m.equals(object); >> } >> >> - public Object get(Object key) { >> + public V get(Object key) { >> return m.get(key); >> } >> >> @@ -1187,19 +1190,19 @@ >> return m.isEmpty(); >> } >> >> - public Set keySet() { >> - return new UnmodifiableSet(m.keySet()); >> + public Set<K> keySet() { >> + return new UnmodifiableSet<K>(m.keySet()); >> } >> >> - public Object put(Object key, Object value) { >> + public V put(K key, V value) { >> throw new UnsupportedOperationException(); >> } >> >> - public void putAll(Map map) { >> + public void putAll(Map<? extends K, ? extends V> map) { >> throw new UnsupportedOperationException(); >> } >> >> - public Object remove(Object key) { >> + public V remove(Object key) { >> throw new UnsupportedOperationException(); >> } >> >> @@ -1207,20 +1210,20 @@ >> return m.size(); >> } >> >> - public Collection values() { >> - return new UnmodifiableCollection(m.values()); >> + public Collection<V> values() { >> + return new UnmodifiableCollection<V>(m.values()); >> } >> >> - public String toString() { >> - return m.toString(); >> - } >> + public String toString() { >> + return m.toString(); >> + } >> } >> >> - private static class UnmodifiableSet extends UnmodifiableCollection >> - implements Set { >> + private static class UnmodifiableSet<E> extends UnmodifiableCollection< >> E> >> + implements Set<E> { >> private static final long serialVersionUID = -92150478337750138 >> 03L; >> >> - UnmodifiableSet(Set set) { >> + UnmodifiableSet(Set<E> set) { >> super(set); >> } >> >> @@ -1233,75 +1236,75 @@ >> } >> } >> >> - private static class UnmodifiableSortedMap extends UnmodifiableMap >> - implements SortedMap { >> + private static class UnmodifiableSortedMap<K, V> extends UnmodifiableMa >> p<K, V> >> + implements SortedMap<K, V> { >> private static final long serialVersionUID = -88067438159967132 >> 06L; >> >> - private final SortedMap sm; >> + private final SortedMap<K, V> sm; >> >> - UnmodifiableSortedMap(SortedMap map) { >> + UnmodifiableSortedMap(SortedMap<K, V> map) { >> super(map); >> sm = map; >> } >> >> - public Comparator comparator() { >> + public Comparator<? super K> comparator() { >> return sm.comparator(); >> } >> >> - public Object firstKey() { >> + public K firstKey() { >> return sm.firstKey(); >> } >> >> - public SortedMap headMap(Object before) { >> - return new UnmodifiableSortedMap(sm.headMap(before)); >> + public SortedMap<K, V> headMap(K before) { >> + return new UnmodifiableSortedMap<K, V>(sm.headMap(befor >> e)); >> } >> >> - public Object lastKey() { >> + public K lastKey() { >> return sm.lastKey(); >> } >> >> - public SortedMap subMap(Object start, Object end) { >> - return new UnmodifiableSortedMap(sm.subMap(start, end)) >> ; >> + public SortedMap<K, V> subMap(K start, K end) { >> + return new UnmodifiableSortedMap<K, V>(sm.subMap(start, >> end)); >> } >> >> - public SortedMap tailMap(Object after) { >> - return new UnmodifiableSortedMap(sm.tailMap(after)); >> + public SortedMap<K, V> tailMap(K after) { >> + return new UnmodifiableSortedMap<K, V>(sm.tailMap(after >> )); >> } >> } >> >> - private static class UnmodifiableSortedSet extends UnmodifiableSet >> - implements SortedSet { >> + private static class UnmodifiableSortedSet<E> extends UnmodifiableSet<E >> + implements SortedSet<E> { >> private static final long serialVersionUID = -49291495915999111 >> 65L; >> >> - private final SortedSet ss; >> + private final SortedSet<E> ss; >> >> - UnmodifiableSortedSet(SortedSet set) { >> + UnmodifiableSortedSet(SortedSet<E> set) { >> super(set); >> ss = set; >> } >> >> - public Comparator comparator() { >> + public Comparator<? super E> comparator() { >> return ss.comparator(); >> } >> >> - public Object first() { >> + public E first() { >> return ss.first(); >> } >> >> - public SortedSet headSet(Object before) { >> - return new UnmodifiableSortedSet(ss.headSet(before)); >> + public SortedSet<E> headSet(E before) { >> + return new UnmodifiableSortedSet<E>(ss.headSet(before)) >> ; >> } >> >> - public Object last() { >> + public E last() { >> return ss.last(); >> } >> >> - public SortedSet subSet(Object start, Object end) { >> - return new UnmodifiableSortedSet(ss.subSet(start, end)) >> ; >> + public SortedSet<E> subSet(E start, E end) { >> + return new UnmodifiableSortedSet<E>(ss.subSet(start, en >> d)); >> } >> >> - public SortedSet tailSet(Object after) { >> - return new UnmodifiableSortedSet(ss.tailSet(after)); >> + public SortedSet<E> tailSet(E after) { >> + return new UnmodifiableSortedSet<E>(ss.tailSet(after)); >> } >> } >> >> @@ -1327,7 +1330,7 @@ >> public static <T> int binarySearch(List<? extends Comparable<? super T> >>> list, T object) { >> if (list == null) >> throw new NullPointerException(); >> - Comparable key = (Comparable) object; >> + Comparable key = (Comparable)object; >> if (!(list instanceof RandomAccess)) { >> ListIterator it = list.listIterator(); >> while (it.hasNext()) { >> @@ -1414,12 +1417,12 @@ >> * when replacing an element in the destination list is >> not >> * supported >> */ >> - public static void copy(List destination, List source) { >> + public static <T> void copy(List<? super T> destination, List<? extends >> T> source) { >> if (destination.size() < source.size()) { >> throw new ArrayIndexOutOfBoundsException(); >> } >> - Iterator srcIt = source.iterator(); >> - ListIterator destIt = destination.listIterator(); >> + Iterator<? extends T> srcIt = source.iterator(); >> + ListIterator<? super T> destIt = destination.listIterator(); >> while (srcIt.hasNext()) { >> try { >> destIt.next(); >> @@ -1464,7 +1467,7 @@ >> * when replacing an element in the List is not supporte >> d >> */ >> public static <T> void fill(List<? super T> list, T object) { >> - ListIterator it = list.listIterator(); >> + ListIterator<? super T> it = list.listIterator(); >> while (it.hasNext()) { >> it.next(); >> it.set(object); >> @@ -1578,8 +1581,8 @@ >> * @exception IllegalArgumentException >> * when <code>length < 0</code> >> */ >> - public static List nCopies(final int length, Object object) { >> - return new CopiesList(length, object); >> + public static <T> List<T> nCopies(final int length, T object) { >> + return new CopiesList<T>(length, object); >> } >> >> /** >> @@ -1592,7 +1595,7 @@ >> * @exception UnsupportedOperationException >> * when replacing an element in the List is not supporte >> d >> */ >> - public static void reverse(List list) { >> + public static void reverse(List<?> list) { >> int size = list.size(); >> ListIterator front = list.listIterator(); >> ListIterator back = list.listIterator(size); >> @@ -1615,7 +1618,7 @@ >> * @see Comparable >> * @see Serializable >> */ >> - public static Comparator reverseOrder() { >> + public static <T> Comparator<T> reverseOrder() { >> return new ReverseComparator(); >> } >> >> @@ -1637,7 +1640,7 @@ >> * @see Comparator >> * @since 1.5 >> */ >> - public static Comparator reverseOrder(Comparator c) { >> + public static <T> Comparator<T> reverseOrder(Comparator<T> c) { >> if (c == null) >> return reverseOrder(); >> return new ReverseComparatorWithComparator(c); >> @@ -1652,7 +1655,7 @@ >> * @exception UnsupportedOperationException >> * when replacing an element in the List is not supporte >> d >> */ >> - public static void shuffle(List list) { >> + public static void shuffle(List<?> list) { >> shuffle(list, new Random()); >> } >> >> @@ -1668,7 +1671,7 @@ >> * @exception UnsupportedOperationException >> * when replacing an element in the List is not supporte >> d >> */ >> - public static void shuffle(List list, Random random) { >> + public static void shuffle(List<?> list, Random random) { >> if (!(list instanceof RandomAccess)) { >> Object[] array = list.toArray(); >> for (int i = array.length - 1; i > 0; i--) { >> @@ -1687,11 +1690,12 @@ >> it.set(array[i++]); >> } >> } else { >> - for (int i = list.size() - 1; i > 0; i--) { >> + List rawList = list; >> + for (int i = rawList.size() - 1; i > 0; i--) { >> int index = random.nextInt() % (i + 1); >> if (index < 0) >> index = -index; >> - list.set(index, list.set(i, list.get(index))); >> + rawList.set(index, rawList.set(i, rawList.get(i >> ndex))); >> } >> } >> } >> @@ -1704,8 +1708,8 @@ >> * the element >> * @return a Set containing the element >> */ >> - public static Set singleton(Object object) { >> - return new SingletonSet(object); >> + public static <E> Set<E> singleton(E object) { >> + return new SingletonSet<E>(object); >> } >> >> /** >> @@ -1716,8 +1720,8 @@ >> * the element >> * @return a List containing the element >> */ >> - public static List singletonList(Object object) { >> - return new SingletonList(object); >> + public static <E> List<E> singletonList(E object) { >> + return new SingletonList<E>(object); >> } >> >> /** >> @@ -1730,8 +1734,8 @@ >> * the value >> * @return a Map containing the key and value >> */ >> - public static Map singletonMap(Object key, Object value) { >> - return new SingletonMap(key, value); >> + public static <K, V> Map<K, V> singletonMap(K key, V value) { >> + return new SingletonMap<K, V>(key, value); >> } >> >> /** >> @@ -1744,14 +1748,14 @@ >> * when an element in the List does not implement Compar >> able >> * or elements cannot be compared to each other >> */ >> - public static void sort(List list) { >> + public static <T extends Comparable<? super T>> void sort(List<T> list) >> { >> Object[] array = list.toArray(); >> Arrays.sort(array); >> int i = 0; >> - ListIterator it = list.listIterator(); >> + ListIterator<T> it = list.listIterator(); >> while (it.hasNext()) { >> it.next(); >> - it.set(array[i++]); >> + it.set((T)array[i++]); >> } >> } >> >> @@ -1767,14 +1771,14 @@ >> * when elements in the List cannot be compared to each >> other >> * using the Comparator >> */ >> - public static void sort(List list, Comparator comparator) { >> + public static <T> void sort(List<T> list, Comparator<? super T> compara >> tor) { >> Object[] array = list.toArray(); >> - Arrays.sort(array, comparator); >> + Arrays.sort(array, (Comparator<Object>)comparator); >> int i = 0; >> - ListIterator it = list.listIterator(); >> + ListIterator<T> it = list.listIterator(); >> while (it.hasNext()) { >> it.next(); >> - it.set(array[i++]); >> + it.set((T)array[i++]); >> } >> } >> >> @@ -1793,12 +1797,13 @@ >> * @exception IndexOutOfBoundsException >> * if index1 or index2 is out of range of this list >> */ >> - public static void swap(List list, int index1, int index2) { >> + public static void swap(List<?> list, int index1, int index2) { >> if (list == null) >> throw new NullPointerException(); >> if (index1 == index2) >> return; >> - list.set(index2, list.set(index1, list.get(index2))); >> + List rawList = list; >> + rawList.set(index2, rawList.set(index1, rawList.get(index2))); >> } >> >> /** >> @@ -1820,7 +1825,7 @@ >> * @exception UnsupportedOperationException >> * if the list does not support setting elements >> */ >> - public static boolean replaceAll(List list, Object obj, Object obj2) { >> + public static <T> boolean replaceAll(List<T> list, T obj, T obj2) { >> int index; >> boolean found = false; >> >> @@ -1843,7 +1848,8 @@ >> * It can be any integer: 0, positive, negative, larger than >> the >> * list size >> */ >> - public static void rotate(List list, int dist) { >> + public static void rotate(List<?> lst, int dist) { >> + List list = lst; >> int size = list.size(); >> >> // Can't sensibly rotate an empty collection >> @@ -1898,7 +1904,7 @@ >> * @return the beginning index of the first occurrence of >> * <code>sublist</code> in <code>list</code>, or -1 >> */ >> - public static int indexOfSubList(List list, List sublist) { >> + public static int indexOfSubList(List<?> list, List<?> sublist) { >> int size = list.size(); >> int sublistSize = sublist.size(); >> >> @@ -1963,7 +1969,7 @@ >> * @return the beginning index of the last occurrence of <code>sublist< >> /code> >> * in <code>list</code>, or -1 >> */ >> - public static int lastIndexOfSubList(List list, List sublist) { >> + public static int lastIndexOfSubList(List<?> list, List<?> sublist) { >> int sublistSize = sublist.size(); >> int size = list.size(); >> >> @@ -2020,8 +2026,8 @@ >> * Enumeration >> * @return and ArrayList >> */ >> - public static ArrayList list(Enumeration enumeration) { >> - ArrayList list = new ArrayList(); >> + public static <T> ArrayList<T> list(Enumeration<T> enumeration) { >> + ArrayList<T> list = new ArrayList<T>(); >> while (enumeration.hasMoreElements()) { >> list.add(enumeration.nextElement()); >> } >> @@ -2036,10 +2042,10 @@ >> * the Collection >> * @return a synchronized Collection >> */ >> - public static Collection synchronizedCollection(Collection collection) >> { >> + public static <T> Collection<T> synchronizedCollection(Collection<T> co >> llection) { >> if (collection == null) >> throw new NullPointerException(); >> - return new SynchronizedCollection(collection); >> + return new SynchronizedCollection<T>(collection); >> } >> >> /** >> @@ -2050,13 +2056,13 @@ >> * the List >> * @return a synchronized List >> */ >> - public static List synchronizedList(List list) { >> + public static <T> List<T> synchronizedList(List<T> list) { >> if (list == null) >> throw new NullPointerException(); >> if (list instanceof RandomAccess) >> - return new SynchronizedRandomAccessList(list); >> + return new SynchronizedRandomAccessList<T>(list); >> else >> - return new SynchronizedList(list); >> + return new SynchronizedList<T>(list); >> } >> >> /** >> @@ -2067,10 +2073,10 @@ >> * the Map >> * @return a synchronized Map >> */ >> - public static Map synchronizedMap(Map map) { >> + public static <K, V> Map<K, V> synchronizedMap(Map<K, V> map) { >> if (map == null) >> throw new NullPointerException(); >> - return new SynchronizedMap(map); >> + return new SynchronizedMap<K, V>(map); >> } >> >> /** >> @@ -2081,10 +2087,10 @@ >> * the Set >> * @return a synchronized Set >> */ >> - public static Set synchronizedSet(Set set) { >> + public static <E> Set<E> synchronizedSet(Set<E> set) { >> if (set == null) >> throw new NullPointerException(); >> - return new SynchronizedSet(set); >> + return new SynchronizedSet<E>(set); >> } >> >> /** >> @@ -2095,10 +2101,10 @@ >> * the SortedMap >> * @return a synchronized SortedMap >> */ >> - public static SortedMap synchronizedSortedMap(SortedMap map) { >> + public static <K, V> SortedMap<K, V> synchronizedSortedMap(SortedMap<K, >> V> map) { >> if (map == null) >> throw new NullPointerException(); >> - return new SynchronizedSortedMap(map); >> + return new SynchronizedSortedMap<K, V>(map); >> } >> >> /** >> @@ -2109,10 +2115,10 @@ >> * the SortedSet >> * @return a synchronized SortedSet >> */ >> - public static SortedSet synchronizedSortedSet(SortedSet set) { >> + public static <E> SortedSet<E> synchronizedSortedSet(SortedSet<E> set) >> { >> if (set == null) >> throw new NullPointerException(); >> - return new SynchronizedSortedSet(set); >> + return new SynchronizedSortedSet<E>(set); >> } >> >> /** >> @@ -2124,10 +2130,10 @@ >> * the Collection >> * @return an unmodifiable Collection >> */ >> - public static Collection unmodifiableCollection(Collection collection) >> { >> + public static <E> Collection<E> unmodifiableCollection(Collection<E> co >> llection) { >> if (collection == null) >> throw new NullPointerException(); >> - return new UnmodifiableCollection(collection); >> + return new UnmodifiableCollection<E>(collection); >> } >> >> /** >> @@ -2139,13 +2145,13 @@ >> * the List >> * @return an unmodifiable List >> */ >> - public static List unmodifiableList(List list) { >> + public static <E> List<E> unmodifiableList(List<E> list) { >> if (list == null) >> throw new NullPointerException(); >> if (list instanceof RandomAccess) >> - return new UnmodifiableRandomAccessList(list); >> + return new UnmodifiableRandomAccessList<E>(list); >> else >> - return new UnmodifiableList(list); >> + return new UnmodifiableList<E>(list); >> } >> >> /** >> @@ -2157,10 +2163,10 @@ >> * the Map >> * @return a unmodifiable Map >> */ >> - public static Map unmodifiableMap(Map map) { >> + public static <K, V> Map<K, V> unmodifiableMap(Map<K, V> map) { >> if (map == null) >> throw new NullPointerException(); >> - return new UnmodifiableMap(map); >> + return new UnmodifiableMap<K, V>(map); >> } >> >> /** >> @@ -2172,10 +2178,10 @@ >> * the Set >> * @return a unmodifiable Set >> */ >> - public static Set unmodifiableSet(Set set) { >> + public static <E> Set<E> unmodifiableSet(Set<E> set) { >> if (set == null) >> throw new NullPointerException(); >> - return new UnmodifiableSet(set); >> + return new UnmodifiableSet<E>(set); >> } >> >> /** >> @@ -2187,10 +2193,10 @@ >> * the SortedMap >> * @return a unmodifiable SortedMap >> */ >> - public static SortedMap unmodifiableSortedMap(SortedMap map) { >> + public static <K, V> SortedMap<K, V> unmodifiableSortedMap(SortedMap<K, >> V> map) { >> if (map == null) >> throw new NullPointerException(); >> - return new UnmodifiableSortedMap(map); >> + return new UnmodifiableSortedMap<K, V>(map); >> } >> >> /** >> @@ -2202,10 +2208,10 @@ >> * the SortedSet >> * @return a unmodifiable SortedSet >> */ >> - public static SortedSet unmodifiableSortedSet(SortedSet set) { >> + public static <E> SortedSet<E> unmodifiableSortedSet(SortedSet<E> set) >> { >> if (set == null) >> throw new NullPointerException(); >> - return new UnmodifiableSortedSet(set); >> + return new UnmodifiableSortedSet<E>(set); >> } >> >> /** >> @@ -2224,7 +2230,7 @@ >> * >> * @since 1.5 >> */ >> - public static int frequency(Collection c, Object o) { >> + public static int frequency(Collection<?> c, Object o) { >> if (c == null) >> throw new NullPointerException(); >> if (c.isEmpty()) >> @@ -2277,7 +2283,7 @@ >> * >> * @return a typesafe collection >> */ >> - public static Collection checkedCollection(Collection c, Class type) { >> + public static <E> Collection<E> checkedCollection(Collection<E> c, Class >> <E> type) { >> return new CheckedCollection(c, type); >> } >> >> @@ -2289,7 +2295,7 @@ >> * >> * @return a typesafe map >> */ >> - public static Map checkedMap(Map m, Class keyType, Class valueType) { >> + public static <K, V> Map<K,V> checkedMap(Map<K,V> m, Class<K> keyType, C >> lass<V> valueType) { >> return new CheckedMap(m, keyType, valueType); >> } >> >> @@ -2301,7 +2307,7 @@ >> * >> * @return a typesafe list >> */ >> - public static List checkedList(List list, Class type) { >> + public static <E> List<E> checkedList(List<E> list, Class<E> type) { >> if (list instanceof RandomAccess) { >> return new CheckedRandomAccessList(list, type); >> } else { >> @@ -2317,7 +2323,7 @@ >> * >> * @return a typesafe set >> */ >> - public static Set checkedSet(Set s, Class type) { >> + public static <E> Set<E> checkedSet(Set<E> s, Class<E> type) { >> return new CheckedSet(s, type); >> } >> >> @@ -2329,8 +2335,8 @@ >> * >> * @return a typesafe sorted map >> */ >> - public static SortedMap checkedSortedMap(SortedMap m, Class keyType, >> - Class valueType) { >> + public static <K,V> SortedMap<K,V> checkedSortedMap(SortedMap<K,V> m, Cl >> ass<K> keyType, >> + Class<V> valueType) { >> return new CheckedSortedMap(m, keyType, valueType); >> } >> >> @@ -2342,7 +2348,7 @@ >> * >> * @return a typesafe sorted set >> */ >> - public static SortedSet checkedSortedSet(SortedSet s, Class type) { >> + public static <E> SortedSet<E> checkedSortedSet(SortedSet<E> s, Class<E> >> type) { >> return new CheckedSortedSet(s, type); >> } >> >> @@ -2377,7 +2383,7 @@ >> * >> * @exception NullPointerException if one of the collections is null >> */ >> - public static boolean disjoint(Collection c1, Collection c2) { >> + public static boolean disjoint(Collection<?> c1, Collection<?> c2) { >> if ((c1 instanceof Set) && !(c2 instanceof Set) >> || (c2.size()) > c1.size()) { >> Collection tmp = c1; >> > > > > --------------------------------------------------------------------- > Terms of use : http://incubator.apache.org/harmony/mailing.html > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
--------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]