java 泛型很难理解 new HashMap<>()

小弟最近在学java的泛型很难理解,提个菜菜的问题~

如上代码,问题:

一、map a 这样写没报错,但是ideal背景提示,估计这样写不好,不好的原因在哪里?没有泛型约束,我倒是觉得很自由。

二、这个new HashMap<>(),这对尖括号的泛型怎么理解?

三、下面这个泛型方法,方法名第一行后两个T和第二行的T,在这个实力化后,要一样的类型吗?

    public static <T> MyResult<T> success(T data,Map myData) {
        MyResult<T> result = new MyResult<>();
        result.code = GlobalErrorCodeConstants.SUCCESS.getCode();
        result.data = data;
        result.myData = myData;
        result.msg = "";
        return result;
    }
阅读 2.7k
1 个回答
一、map a 这样写没报错,但是ideal背景提示,估计这样写不好,不好的原因在哪里?没有泛型约束,我倒是觉得很自由。
  1. 建议做约束,哪怕是Map<String, Object>
  2. 有约束可以减少错误 + 方便读取
二、这个new HashMap<>(),这对尖括号的泛型怎么理解?

java7特性,可以推断尖括号里的东西,前面写了 <String, String> 后面 <> 就可以了

三、下面这个泛型方法,方法名第一行后两个T和第二行的T,在这个实力化后,要一样的类型吗?

这两个T是同一个T,自然是要一样的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题