Vineet ,

Yes, this is a technique that, carefully and properly used, could help in
building a generic DAO.
Can you elaborate on "intializing the class type in constructor." ?

Regards - Cemal 
jWeekend 
OO & Java Technologies, Wicket Training and Development 
http://jWeekend.com




vineet semwal wrote:
> 
> the first time I  used  genericsuperclass()  was in generic daos after
> reading  https://www.hibernate.org/328.html,
> though it has it's own  quirks, it doesn't apply every where ..
>  abstract modifier in above code was needed,it's done so that one will
> eventually  subclass funnyfactory
> and that genericsuperclass hack will work ..
> 
> apart from that one another simple way for retrieving the generic
> classtype
> is intializing the class type in
> constructor.
> 
> conditions apply ;)
> -- 
> regards,
> Vineet Semwal
> 
> 
> On Thu, Sep 17, 2009 at 4:13 AM, jWeekend
> <[email protected]>wrote:
> 
>> Since you can NOT do
>>
>> class S<T>{S(){T t = new T();}} // broken
>>
>> how would you create an object of type T somewhere in S? Think about this
>> before you read on ...
>>
>> At the risk of reigniting the world-famous generics debates of
>> yesteryear,
>> just as our noble core-developers regroup to start work on making 1.5
>> even
>> better than what is already the best Java web framework, I thought I'd
>> share
>> the idea I suggested to one of our developers who was having a bad day
>> with
>> generics (for several good reasons [1][2]) a couple of months ago, in
>> case
>> you can make use of it somewhere, or, find an even more convoluted
>> solution
>> - notice the innocent looking abstract modifier!
>> // not real code
>> // don't try this at home without adult supervision!
>> public abstract class FunnyFactory<T> {
>>  private T instance = null;
>>  public T getInstance() {
>>   if (instance == null) {
>>     try {
>>       final ParameterizedType gsc =
>>         (ParameterizedType)getClass().getGenericSuperclass();
>>       final Class<T> typeT =         (Class<T>)
>> gsc.getActualTypeArguments()[0];
>>       instance = typeT.newInstance();
>>     } catch (InstantiationException e) {
>>       e.printStackTrace();
>>     } catch (IllegalAccessException e) {
>>       e.printStackTrace();
>>     }
>>   }
>>   return instance;  }
>> }
>>
>> ...
>>
>> public class CreateInstanceOfTypeParameter {
>>   @Test
>>   public void testCreateInstanceOfTypeParameter() {
>>       FunnyFactory<Point> factory = new FunnyFactory<Point>() {};
>>     factory .getInstance().x = 22;
>>     factory .getInstance().y = 47;
>>     assertEquals(new Point(22, 47), factory.getInstance());
>>   }
>> }
>>
>> Regards - Cemal jWeekend OO & Java Technologies, Wicket Training and
>> Development http://jWeekend.com
>>
>> [1] http://gafter.blogspot.com/2006/11/reified-generics-for-java.html
>> [2]
>> http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/-OT--More-%22Java%27s-generic-type-parameters-are-not-reified%22...-tp25482235p25487989.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to