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;

}


回答:

一、map a 这样写没报错,但是ideal背景提示,估计这样写不好,不好的原因在哪里?没有泛型约束,我倒是觉得很自由。
  1. 建议做约束,哪怕是Map<String, Object>
  2. 有约束可以减少错误 + 方便读取
二、这个new HashMap<>(),这对尖括号的泛型怎么理解?

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

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

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

以上是 java 泛型很难理解 new HashMap&lt;&gt;() 的全部内容, 来源链接: utcz.com/p/944319.html

回到顶部