如何索引java.util.Collections$UnmodifiableMap的类类型?

如何索引java.util.Collections$UnmodifiableMap的类类型?,java,reflection,collections,map,Java,Reflection,Collections,Map,嗯。。。实际上,我正在实现一个类,使用一个名为“适配器”的类将任何对象转换为另一个对象。我使用HashMap映射每对类型SOURCE->TARGET:HashMap,HashMap>。每种类型都有适配器。例如:字符串可以转换为整数、双精度等。要获取适配器,请执行以下操作: Adapter adapter = map.get(String.class).get(Integer.class); 我将以友好的方式获得适配器: Adapter adapter = map.get(< sour

嗯。。。实际上,我正在实现一个类,使用一个名为“适配器”的类将任何对象转换为另一个对象。我使用HashMap映射每对类型SOURCE->TARGET:HashMap,HashMap,适配器>>。每种类型都有适配器。例如:字符串可以转换为整数、双精度等。要获取适配器,请执行以下操作:

 Adapter adapter = map.get(String.class).get(Integer.class);
我将以友好的方式获得适配器:

 Adapter adapter = map.get(< source_object >.getClass()).get(Integer.class);
Adapter=map.get(.getClass()).get(Integer.class);
我的问题是,我需要在HashMap中放入java.util.Collections$UnmodifiableMap的一个键。来自servlet的请求参数集合是一个映射。但是,当我使用.getClass()时,返回java.util.Collections$UnmodifiableMap。无法将键java.util.Collections$UnmodifiableMap.class放在适配器HashMap:(


有人能帮我吗?

将不可修改的映射包装到HashMap中会有帮助吗

source_object = new HashMap<Object, Object>(source_object);
source\u object=新的HashMap(source\u object);

效率很低,不是很优雅,但可能是一个临时解决办法?

多亏了tmmllr的帮助!我基于他的建议和改进解决方案!我使用java.util.Collections.unmodifiableMap(新HashMap()).getClass()将索引放到HashMap适配器的源代码中。更有效的方法是:

 adapters.put(java.util.Collections.unmodifiableMap(new HashMap< >()).getClass(),...); 

我认为这是最实用的方法!

我正在实现一个转换器,将所有表单条目转换为对象,已知的对象称为“ManagedBeans”;)它就像一个JSPruntTimeLibrary,但更加抽象。我必须这样做!我不认为你能以任何有用的方式来完成这项工作。对库用户隐藏这些实现细节(如
UnmodifiableMap
类)是一种很好的编程实践,因此您总是会遇到这些隐藏的匿名类。。。它起作用了!谢谢正如你所说,它不是很优雅,但解决了我的问题
Class.forName(“java.util.Collections$UnmodifiableMap”)
但是,我想不出为什么要使用它。只需为所有
Map
编写一个通用适配器。我只想为其他程序员提供一个可扩展的解决方案,尽可能少地制作自己的适配器;)
 Class.forName("java.util.Collections$UnmodifiableMap");