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背景提示,估计这样写不好,不好的原因在哪里?没有泛型约束,我倒是觉得很自由。
- 建议做约束,哪怕是Map<String, Object>
- 有约束可以减少错误 + 方便读取
二、这个new HashMap<>(),这对尖括号的泛型怎么理解?
java7特性,可以推断尖括号里的东西,前面写了 <String, String>
后面 <>
就可以了
三、下面这个泛型方法,方法名第一行后两个T和第二行的T,在这个实力化后,要一样的类型吗?
这两个T是同一个T,自然是要一样的
以上是 java 泛型很难理解 new HashMap<>() 的全部内容, 来源链接: utcz.com/p/944319.html