0

假设我们有这个功能:

<T> T   getFromCache (ClassType<T>   clazz);

对于字符串:

String str =   getFromCache(String.class);

对于我目前正在考虑做的地图:

//… 
Map<String, SomeData>   anotherMapObject  = getFromCache( HashMap.class);

我们能比这更具体吗?

当然,一种解决方案是将“HashMap”包装在一个类中。但是,如果我们不想这样做,那么有更好的解决方案吗?

4

1 回答 1

0

如果你想传入地图实现,你可以这样做:

private <M extends Map> Map<String, String> get(Class<M> m) throws Exception {
        return (Map<String, String>) m.newInstance();
    }

您可以像这样参数化键和值类型:

private <M extends Map<K, V>, K, V> M getMap(Class<M> m, Class<K> k, Class<V> v)
于 2012-09-05T19:35:58.257 回答