java - 我怎样才能用 Java 泛型解决这个问题?

标签 java generics

我有一个键值对存储在一个 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/

相关文章:

java - Slf4j: 找到 slf4j-api 依赖但没有找到提供者

java - 如何在java中读取文本文件的特定部分

java - 如何在 onCreate 中隐藏 Android LinearLayout?

java - 为什么我会收到类型不匹配错误?

java - Spring找不到接口(interface)的实现

java - OpenGL:无论相机方向如何,如何使文本以相同像素显示?

scala - 检查范围是否包含 Scala 中的值的通用方法

java - 如何找到引用方法的第一个声明方法

java - 通用整数类型到字符类型的转换

java - 策略设计模式、泛型和类型安全