更新:
private final java.util.Properties tilesPropertyMap = new Properties();
private class DelegatingServletConfig implements ServletConfig {
public String getServletName() {
return "TilesConfigurer";
}
public ServletContext getServletContext() {
return servletContext;
}
public String getInitParameter(String paramName) {
return tilesPropertyMap.getProperty(paramName);
}
@Override
public Enumeration<String> getInitParameterNames() {
return tilesPropertyMap.keys(); // returns Enumeration<Object>
}
}
更新:我正在实施ServletConfig所以我必须getInitParameterNames()
我将如何转换Enumeration&lt; String&gt;到枚举&lt; object&gt;?
答案 0 :(得分:1)
我的理解是你以这种方式(或多或少)启动tilesPropertyMap
:
tilesPropertyMap = new HashMap<Object, Object>();
最简单的解决方案是在创建过程中正确初始化HashMap,如下所示:
tilesPropertyMap = new HashMap<String, Object>();
现在你不需要施展任何东西,你上面展示的方法将完美无缺。或者我错过了解你的问题?
答案 1 :(得分:0)
我不会将所有地图键都转换为String。
如果您确定,只有字符串在这些键内,请将地图键类型从对象更改为字符串。
new HashMap()<String, Object>;
投射孔映射键,可能会抛出classcastexception,你必须处理它。
答案 2 :(得分:0)
我认为您的意思是如何将Enumeration<Object>
转换为Enumeration<String>
...
你不能。
相反,将tilesPropertyMap
设为Map<String, ?>
而不是Map<Object, ?>
答案 3 :(得分:0)
@Override
public Enumeration<String> getInitParameterNames() {
Enumeration tile = tilesPropertyMap.keys(); // returns Enumeration<Object>
return tile;
}