小编Moz*_*far的帖子

Java 9中类型推断检查的变化

代码(缩短实际代码来解释问题).

import java.util.Map;
import java.util.HashMap;

public class TypeReferenceTest {

    public static  class Model {
        public void setAbc(Abc<String> abc) { }
    }

    public static class Abc<T> {
        public Abc(T val) { }
    }

    public static void main(String[] args) {
        Map<String, Object> attrMap = new HashMap<>();
        attrMap.put("key", 0);
        Model m = new Model ();
        m.setAbc(new Abc<>(getAttrOrDefault(attrMap, "key", "Default")));
        System.out.println("Test completed.....");
    }

    public static <T extends Object> T getAttrOrDefault(Map<String, Object> attrMap, String attrName, T defaultValue) {
        @SuppressWarnings("unchecked")
        T attrValue = (T)attrMap.get(attrName);
        return (attrValue …
Run Code Online (Sandbox Code Playgroud)

java generics type-inference java-9

8
推荐指数
1
解决办法
133
查看次数

标签 统计

generics ×1

java ×1

java-9 ×1

type-inference ×1