我为缓存编写了一个函数来检索特定对象.这样我就不需要施放它了.
@SuppressWarnings("unchecked")
public static <T> T inCache(Class<T> obj, String token) {
Object cacheObj = Cache.get(token);
if (cacheObj != null) {
if (obj.isAssignableFrom(cacheObj.getClass())) {
return (T) cacheObj;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我这样用它
String s = inCache(String.class, title);
Run Code Online (Sandbox Code Playgroud)
但是现在我的缓存中有一个字符串列表,我不能像这样使用它
List<String> ipList = Util.inCache(List<String>.class, title);
Run Code Online (Sandbox Code Playgroud)
问题是List<String>.class.我是java的新手,我该怎么写呢?
java中有一个叫做类型擦除的概念.由于遗留原因,像List这样的东西只是一个列表.它不记得它是运行时的字符串列表.你应该写List.class.
然后,您可以在迭代时指定List中的对象类型.
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |