我们应该用显式类型在Java中实例化一个地图对象吗?

有朋友告诉我,在实践/行业中我们应该写:

Map<Class1, Class2> map = new HashMap<>(); 

代替

 Map<Class1, Class2> map = new HashMap<Class1, Class2>(); 

这种编码风格有什么特别的原因吗?

因为编译器会理解HashMap<>是一个HashMap<Class1, Class2> ,所以你不需要repeat your self 。 后来如果你想改变Class1, Class2你只需要在一个地方改变。

像C#一样的现代语言,Swift,Kotlin开始写var a = 5而不是int a = 5