我正在尝试编写一个简单的实用函数,从Map中获取一个值,如果没有找到,则创建一个新的值类并将其放入Map中。
然而,在运行时获得Map键和值的类似乎非常困难,我能想到的最好方法是以下可怕的方法。
有更好的方法吗?
然而,在运行时获得Map键和值的类似乎非常困难,我能想到的最好方法是以下可怕的方法。
有更好的方法吗?
private Object getOrCreate( Map<Object, Object> map, Object key, Class<?> mapValueClass ) {
Object value = map.get( key );
if (value == null) {
Constructor<?> con = mapValueClass.getConstructor( key.getClass() );
value = con.newInstance( key );
map.put( key, value );
}
return value;
}