You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Sergei Ivanov (JIRA)" <ji...@apache.org> on 2006/05/30 23:24:30 UTC

[jira] Commented: (COLLECTIONS-110) [collections] Support parametized classes with commons.collections.

    [ http://issues.apache.org/jira/browse/COLLECTIONS-110?page=comments#action_12413907 ] 

Sergei Ivanov commented on COLLECTIONS-110:
-------------------------------------------

[cross-posted from Bugzilla]

------- Additional Comment #6 From Sergei S. Ivanov 2006-05-22 21:49 [reply] ------- 
(In reply to comment #4)
> The project was done without good technical knowledge of Java 1.5 
parametized 
> classes.
> THE TYPICAL ERROR:
> class Set<E> {
>     void add(E d) {...} // that's wrong!!!
> }
> - the method add should read
>     void add(<? extends E> d) {...} // so any subclass of E is acceptable.

I am sorry to disappoint you, but the code above is not wrong. add(E) will 
accept any subclass of actual type argument. The example below is fully 
legitimate:
   Set<Number> set = new HashSet<Number>();
   set.add(new Double(0));

Please have a look, how Set<E> interface is defined in the JDK.

As for the wildcards (? extends/super E), they are mostly needed, when you 
have generic objects being passed into/returned from methods. Remember that 
you cannot pass object, which is declared as Set<Double>, to a function that 
accepts a Set<Number> as an argument, but you can do it if the argument type 
is declared as Set<? extends Number>.

Without any aim to offend you, I would strongly recommend you revisiting the 
tutorial you mentioned.

> [collections] Support parametized classes with commons.collections.
> -------------------------------------------------------------------
>
>          Key: COLLECTIONS-110
>          URL: http://issues.apache.org/jira/browse/COLLECTIONS-110
>      Project: Commons Collections
>         Type: Bug

>  Environment: Operating System: other
> Platform: Other
>     Reporter: Colbert Philippe

>
> It's time to create a parallel version of commons.collections to support 
> parametized classes of each container class and abstract class.  It's not that 
> hard.  There is a 23 PDF document on Sun Java website describing in detail how 
> it should be done and what to watch out for.
> I already converted a few classes from commons.collection privately for my own 
> needs.  Once you get the hang of it, it's a rather quick process.
> I am even willing to volunteer my time to do some more but I need the 
> collaboration of some of the original programmers to watch over things.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org