我有一个键值对存储在一个 map 中:Map<String, Object>
.这些值是从文件中获取的,属于不同的基元,因此在 Map 中存储为对象类型。
假设 Map 包含三个键值对:
{
"objA": 1,
"objB": "MyName",
"obj3": "19-09-2015"
}
ObjA 必须作为 Integer 检索,objB 必须作为 String 检索,obj3 必须作为 LocalDate 检索。
我想要一个方法,在该方法中我将 Map、KeyName 和 Desired Class 作为参数传递,它应该返回以 Desired Class 作为类型的获取值:
像这样:
public T fetch(Map<String, Object> myMap, String key, Class T) {
// Find value corresponding to 'key'
Object object = myMap.get(key);
// Return the object as type T
return (T)object;
}
然后我会这样调用这个方法:
Double myJavaValue = fetch(myMap, myValue, java.lang.double.class);
我究竟该如何实现?
最佳答案
@SuppressWarnings("unchecked")
public static <T> T fetch(Map<String, Object> myMap, String key) {
return (T) myMap.get(key);
}
关于java - 我怎样才能用 Java 泛型解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32665470/