On Oct 12, 2010, at 3:14 PM, James Carman wrote:

> You don't need generic-smart code for what they do in Wicket.  Here's
> the signature of the "get" method:
> 
> public final <T> T getMetaData(MetaDataKey<T> key)
> 
> So, when you're using an object of type MetaDataKey<String> you can
> only set/get string objects using it.
> 

At compile time.

-Matt

> On Tue, Oct 12, 2010 at 10:54 AM, Matt Benson <gudnabr...@gmail.com> wrote:
>> Looks like their javadoc is a little off, recommending new 
>> MetaDataKey(Role.class) { } when I believe they meant new 
>> MetaDataKey<Role>() { } .  This resonates with the optionality I did for the 
>> type parameter in the proxy2-stub module's StubConfigurer class:  if the 
>> implementation has the variable assigned as by an anonymous inner class 
>> declaration, no need to pass the class reference explicitly.  This does 
>> necessitate some generics-smart code; does [pool] depend on [lang]?  lang3's 
>> TypeUtils takes care of this nicely.
>> 
>> -Matt
>> 
>> 
>> On Oct 12, 2010, at 8:38 AM, James Carman wrote:
>> 
>>> If you're going to do that, I'd recommend doing something similar to
>>> what the Wicket folks did:
>>> 
>>> http://wicket.apache.org/apidocs/1.4/org/apache/wicket/MetaDataKey.html
>>> 
>>> http://wicket.apache.org/apidocs/1.4/org/apache/wicket/Application.html#getMetaData%28org.apache.wicket.MetaDataKey%29
>>> 
>>> This way, the key has type information "baked in."
>>> 
>>> On Tue, Oct 12, 2010 at 9:29 AM, Brent Worden <brent.wor...@gmail.com> 
>>> wrote:
>>>>  The javadoc on KeyedObjectPool states 'A keyed pool pools instances of
>>>> multiple types.'  However, the new parametrization on KeyedObjectPool 
>>>> allows
>>>> for only a single instance type.
>>>> 
>>>> To allow for pooling multiple typed instances, should the instance type
>>>> parameter be removed from the interface declaration and placed on the
>>>> relevant method declarations?  In other words, replace:
>>>> 
>>>> public interface KeyedObjectPool<K,V> {
>>>> ...
>>>> }
>>>> 
>>>> with:
>>>> 
>>>> public interface KeyedObjectPool<K> {
>>>> 
>>>> <V> V borrowObject(K key);
>>>> 
>>>> <V> void invalidateObject(K key, V obj);
>>>> 
>>>> <V> void returnObject(K key, V obj);
>>>> ...
>>>> }
>>>> 
>>>> Thoughts?
>>>> 
>>>> Brent.
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>> 
>>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 


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

Reply via email to