我有一个方法需要参数中的通用映射:
public void someMethod(Map<String,?> mapParameter){
...
}
我调用此方法的实现,“?”有多个可能的值通用参数例如,有时“?”中的值将为整数,其他为字符串、 boolean 值。
是否存在某种方法来声明一个完全通用的 HashMap,它可以接受我的值,并传递给“someMethod”方法?
我尝试将值提取到类“IntegerValueDTO”中,接收字符串值中的值并转换为特定类型。所有这些创建的“valueDTO”类,我都从“defaultValue”扩展。 这样,我实现了这张 map :
Map<String, ? extends DefaultValue> map = new HashMap<String, ? extends DefaultValue>();
但是,方法 someMethod 不是来 self 的应用程序,它来自框架,那么我就没有控制机会来实现。并以这种方式声明我的 map ,他将生成 "Map<String, some instance of DefaultValue>"
的 map ,并且框架崩溃。
欢迎任何帮助。
最佳答案
Map<String, ? extends Object> map = new HashMap<String, ? extends Object>();
如果该方法返回一些您希望在应用程序中使用的值,您可以使用反射来查看它返回的值并转换为该特定对象。
关于java - java中的通用 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11619485/