Re: [picocontainer-dev] JSR330 work progress
Mark Hobson <[email protected]> Tue, 3 Aug 2010 22:18:13 +0100
| Newsgroups | gmane.comp.java.picocontainer.devel |
|---|---|
| Message-ID | <[email protected]> |
TypeUtils.isPrimitive added in trunk :) Mark On 3 August 2010 22:06, Mark Hobson <[email protected]> wrote: > Hi Paul, > > On 3 August 2010 12:10, Paul Hammant <[email protected]> wrote: >> Some questions about JType : >> Much of it is the same as the (much more juvenile) TypeOf that I was >> evolving. =A0There are some things that I think I'll need though that yo= ur >> don't have. I say this because I have a pending commit to replace 'TypeO= f' >> with 'Generic'. =A0Of course I could be wrong and you have equivalent fe= atures >> that I can't see yet. >> Needed Methods: >> =A0=A0isAssignableFrom(Class aClass) >> =A0=A0isAssignableTo(Class aClass) > > These are both doable with: TypeUtils.isAssignable(Type supertype, Type t= ype) > >> =A0=A0isPrimative() > > This would be a nice addition to TypeUtils as isPrimitive(Type). =A0It > shouldn't take long to implement. > >> Needed Constants >> =A0INTEGER >> =A0LONG >> =A0VOID >> =A0DOUBLE // etc > > You shouldn't need these as you can just use Integer.class, > Long.class, etc. =A0The idea with Generic is that it doesn't supersede > Type, Class, etc., but complements them by providing a type literal. > Generic<T> is just a parameterized wrapper for Type so that Types can > benefit from type inference as Class<T>. > >> Refer=A0http://github.com/paul-hammant/picocontainer/blob/f5d973d065dfd4= b8281d4feffbb290e0e90f9722/pico/container/src/java/org/picocontainer/TypeOf= .java >> I'm also thinking that your toString() is the same as my getName() > > Yep, it'll give the same result. > >> Also a more general question... why did you not choose JType a the base >> classname? =A0It feels close to what junior developers would feel comfor= table >> with given they understand "Class" and "Type". > > I chose Generic from the JLS definition: > > "A class is generic if it declares one or more type variables" > http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.1.2 > > Since that's typically when Generic is used, with parameterized types. > =A0As mentioned above, Generic is meant to complement Type and Class, > but JType sounds like it supersedes Type. =A0TypeLiteral is the Guice > name for it, but then goes on to define it as "Represents a generic > type T" in the Javadocs. =A0Finally, the name JType was chosen way after > the library was in use :) > >> Moreover, the get >> factory-method also converts from regular Class (which in itself is not >> 'generic'). > > This is true, but this method is used to ease use of Generic. =A0For > example, consider the following: > > <T> T newInstance(Class<T> type) { > =A0 =A0return newInstance(Generic.get(type)); > } > <T> T newInstance(Generic<T> type) { > =A0 =A0// return new instance of T > } > > It allows the method that takes a Class to delegate to the Generic varian= t. > >> Obviously JType/Generic is more evolved than TypeOf. >> I can send a patch-file if you want to take a look at this Mark :) > > Is that a patch for JType or Pico? =A0Hopefully you should have > everything you need in JType aside from the isPrimitive method which > I'll add now. > > Cheers, > > Mark > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email