繁体   English   中英

我们可以有一个泛型的类类型吗?

[英]Can we have a class type for a generic?

假设我们具有以下功能:

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

对于字符串:

String str =   getFromCache(String.class);

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

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

我们能比这更具体吗?

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

如果要传递地图实现,可以执行以下操作:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM