通过阅读javase api文档,我注意到集合框架中的几乎所有方法都使用尖括号。例如:
Collection<String> c = new HashSet<String>();或
Map<String, Integer> m = new HashMap<String, Integer>();在眼睛看来,它们似乎起到了与一组括号相同的作用。我仍然不太了解Java语言,无法看到使用尖括号的总体连接,以及为什么会出现这种情况。
我的问题是:是否对JVM解释尖括号的方式有重要意义,而不是perens?,还是只是跨多种语言的一种常见实践?
发布于 2012-03-16 20:46:28
尖括号是随着Java1.5中泛型的引入而来的
由于这是对现有语言的稍后添加,所以我猜选择尖括号来明确区分现有括号(方法和构造函数调用)、方括号(数组成员访问)和花括号(块分隔符)。我认为尖括号是这里合乎逻辑的选择。
发布于 2012-03-16 20:47:11
与perens相比,JVM解释尖括号的方式是否有意义?
没有一个是由JVM解释的--无论是大括号还是尖括号,括号和尖括号都是在编译期间解析的,而且JVM没有看到它们,因为JVM在运行时是活动的。
如边注所示:
<>用于仿制药,它们的使用在其他语言(如C++ )中也很常见。new HashSet<String>();称为一种方法--它不是,而是调用一个构造函数。构造函数不是一种方法。发布于 2012-03-16 20:47:25
已经为方法调用和表达式分组保留了括号。尖括号用于泛型类型参数。
如果两者都使用括号,事情可能变得模棱两可,如果不是编译器,那么至少对读者。
https://stackoverflow.com/questions/9744269
复制相似问题