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