Re: nested generic HashMap problem
On 4/27/2010 7:39 AM, Lew wrote:
Chris Riesbeck wrote:
I don't follow the "don't have a type" part here. The correlation I was
trying to capture was
T get(Demo<T>, long)
using an underlying Map(Demo<T>, Map<long, T>). That seems to me to be
well-defined, just not definable in Java.
What do you mean, not definable? That's exactly how you define it,
what you wrote just there, modulo the typos.
class Registry<T>
{
private final Map<Demo<T>, Map<Long, T>> demoMaps =
new HashMap<Demo<T>, Map<Long, T>> ();
...
}
Lew, the problem is "T" is different for every key of the map.
map.put(String.class, new Map<Long, String>());
map.put(Foo.class, new Map<Long, Foo>());
There is no definition for Map<Class<...>, ...> which will fit the above
usecases.
One will need to carefully ensure the key matches the value, and cast
appropriately, or not use a java.util.Map.
--
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>