将Enumeration <string>转换为Enumeration <object> </object> </string>

时间:2011-07-30 07:49:54

标签: java

更新:

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;?

4 个答案:

答案 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;            
    }