pivot-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Brown <gkbr...@mac.com>
Subject Re: Question about generics in some classes
Date Wed, 23 Jun 2010 01:09:21 GMT
Ah, I see. The ability to access a member variable of the returned value without casting or
storing it in a local variable doesn't seem like a particularly strong use case though. And
this code isn't especially pretty either:

tableView.getSelectedRow(Foo.class).bar();

I think I'd have to look at the TableView API to understand what that code is doing, whereas
this, while a bit cumbersome, is readily understandable:

((Foo)tableView.getSelectedRow()).bar()

G

On Jun 22, 2010, at 8:49 PM, Alejandro Vilar wrote:

> Well you are right about class parameter vs direct casting, I have a better example to
explain why I put that example:
> 1)      public <T> T getSelectedRow();
>  
> Foo foo=tableView.getSelectedRow();
> Foo foo=(Foo) tableView.getSelectedRow();   //<-- current
> foo.bar();
>  
> 2)      public <T> T getSelectedRow(Class<T> requiredClass);
>  
> tableView.getSelectedRow(Foo.class).bar(); 
> ((Foo) tableView.getSelectedRow()).bar();   //<-- current, not so clean
> tableView.getSelectedRow().bar();   //<-- doesn’t work
>  
>  
> Regards
> Alejandro
>  
>  
>  
> From: Greg Brown [mailto:gkbrown@mac.com] 
> Sent: Martes, 22 de Junio de 2010 08:25 p.m.
> To: user@pivot.apache.org
> Subject: Re: Question about generics in some classes
>  
> Is there a particular reason why TableView doesn’t support generics? 
> 
> 
> public <T> T getSelectedRow(Class<T> requiredClass) {
> }
>  
> It is certainly doable, but is this:
>  
>   Foo foo = tableView.getSelectedRow(Foo.class);
>  
> significantly better than this:
>  
>   Foo foo = (Foo)tableView.getSelectedRow();
>  
> The other signature might be worth considering - need to give some thought to potential
downsides.
>  
> Also with query parameters, this is not a big deal, but including shortcut methods as
follows can be helpful:
> putParameter(String key, int value);
> putParameter(String key, double value);
> putParameter(String key, boolean value);
> putParameter(String key, Object value);
>  
> Seems reasonable. However, if we were to add these, I think it might be clearer to add
them to QueryDictionary as put() overloads.
>  


Mime
View raw message