首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么语言设计者使用尖括号而不是括号?

问为什么语言设计者使用尖括号而不是括号?
EN

Stack Overflow用户
提问于 2012-03-16 20:43:50
回答 7查看 2.7K关注 0票数 4

通过阅读javase api文档,我注意到集合框架中的几乎所有方法都使用尖括号。例如:

代码语言:javascript
复制
Collection<String> c = new HashSet<String>();

或

代码语言:javascript
复制
Map<String, Integer> m = new HashMap<String, Integer>();

在眼睛看来,它们似乎起到了与一组括号相同的作用。我仍然不太了解Java语言,无法看到使用尖括号的总体连接,以及为什么会出现这种情况。

我的问题是:是否对JVM解释尖括号的方式有重要意义,而不是perens?,还是只是跨多种语言的一种常见实践?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-03-16 20:46:28

尖括号是随着Java1.5中泛型的引入而来的

由于这是对现有语言的稍后添加,所以我猜选择尖括号来明确区分现有括号(方法和构造函数调用)、方括号(数组成员访问)和花括号(块分隔符)。我认为尖括号是这里合乎逻辑的选择。

票数 8
EN

Stack Overflow用户

发布于 2012-03-16 20:47:11

与perens相比,JVM解释尖括号的方式是否有意义?

没有一个是由JVM解释的--无论是大括号还是尖括号,括号和尖括号都是在编译期间解析的,而且JVM没有看到它们,因为JVM在运行时是活动的。

如边注所示:

  1. <>用于仿制药,它们的使用在其他语言(如C++ )中也很常见。
  2. 您将new HashSet<String>();称为一种方法--它不是,而是调用一个构造函数。构造函数不是一种方法。
票数 3
EN

Stack Overflow用户

发布于 2012-03-16 20:47:25

已经为方法调用和表达式分组保留了括号。尖括号用于泛型类型参数。

如果两者都使用括号,事情可能变得模棱两可,如果不是编译器,那么至少对读者。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9744269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档