问题标签 [diamond-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1829 浏览

java - 为什么 Java 7 和 Eclipse 3.8 编译器不能使用新的 Java 7 菱形运算符编译 JDK 代码?

asList()取自 java.util.Arrays 的 Oracles JDK 实现。

错误是

这怎么行?Oracle 使用与我们相同的编译器。

0 投票
2 回答
1611 浏览

perl - 在 perl @ARGV 中查找管道和重定向

在编写传统的 Unix/Linux 程序时,perl 提供了菱形运算符 <>。我试图了解如何测试是否根本没有传递任何参数,以避免 perl 脚本在不应该时处于 STDIN 的等待循环中。

一些输出运行表明 <> 有效,但是没有参数我们等待 STDIN 输入,这不是我想要的。

首先想到的是测试 $#ARGV ,它保存了@ARGV 中最后一个参数的编号。然后我在上面的脚本中添加了一个测试,在 while 循环之前,如下所示:

这并没有产生预期的结果。$#ARGV 是 -1 用于命令行上的重定向和管道。使用此检查(grabchk.pl)运行,问题发生了变化,我无法通过管道或重定向案例中的 <> 读取文件内容。

是否有更好的测试来查找 shell 传递给 perl 的所有命令行参数?

0 投票
3 回答
12581 浏览

java - 为什么钻石运算符在 Java 7 的 addAll() 调用中不起作用?

鉴于泛型教程中的这个例子。

为什么最后一行不编译,它似乎应该编译。第一行使用了一个非常相似的结构并且编译没有问题。

请详细解释。

0 投票
1 回答
425 浏览

perl - Perl菱形运算符中的奇怪事物

拜托,谁能帮我解决这个问题:

我只是不明白它是如何工作的。它有效!生产

关于输出。

有谁知道钻石运营商内部发生了什么?

0 投票
3 回答
163 浏览

perl - Perl:从 <> 读取

在 Perl中读取 from 有什么作用<>?例如,以下将做什么?

0 投票
3 回答
2060 浏览

java - 方法调用中的 Java 7 钻石操作

这是讨论的后续问题:

为什么钻石运算符在 Java 7 的 addAll() 调用中不起作用?

从Java教程,

http://docs.oracle.com/javase/tutorial/java/generics/gentypeinference.html

请注意,菱形通常在方法调用中起作用;但是,为了更清楚起见,建议您主要使用菱形来初始化声明它的变量

所以,我对第一行有点困惑。钻石何时在方法调用中起作用

关于钻石运算符如何工作的更多解释可以在这里找到:

http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDetails.html#What%20is%20type%20argument%20inference%20for%20constructors

从此,我尝试了以下方法,效果很好:

给我:

像下面这样的调用编译得很好:

上述方法调用中调用构造函数的类型参数f()是从构造函数的参数推断出来的(即Integer)。

这就是教程说的意思吗

请注意,菱形通常在方法调用中起作用

如果没有,任何人都可以提供一个钻石在方法调用中起作用的例子吗?

0 投票
2 回答
1718 浏览

java - Java 7 钻石运算符:为什么难以实现?

我观看了 Oracle OTN 虚拟活动:Java SE 和 JavaFX 2.0(2012 年 2 月 28 日),在谈到新的菱形运算符(那个Map<String, List<String>> myMap = new HashMap<>();东西)时,演讲者提到它的实现并不像人们想象的那么简单,因为它不是一个简单的令牌替换。

我的问题是为什么?为什么不能将其实现为简单地从变量声明中获取字符串并将其放入菱形运算符中?

0 投票
2 回答
27211 浏览

java - Java 7 Diamond 运算符上的编译错误:ArrayList<>();

我有这行代码:

并得到以下 3 个错误:

我正在使用 Eclipse 3.7,我安装了 JDK 7 update 5,并且项目设置为使用构建路径中的 JRE 系统库[JavaSE1.7]。

传入IObserver<?>右侧的编译很好,但我必须使用菱形运算符。

我认为这是一个配置问题,但我无法弄清楚我错过了什么。

0 投票
1 回答
5668 浏览

perl - Perl 的菱形运算符(空文件句柄)当前从哪个文件读取?

我正在使用 Perl 的菱形 <>运算符来读取命令行上指定的文件。

我希望能够报告类似 的消息"Trouble on line $. of file $FILENAME",但我如何才能知道钻石当前使用的是哪个文件?

0 投票
1 回答
3644 浏览

java - 使用 <> 通过匿名类创建地图

在 JDK 1.7 中,我可以创建一个Collectionlet,例如这样说HashMap

最后是钻石<>

但是,如果我正在创建这样的地图:

在钻石编译器上说:

我必须使用:... new HashMap<String, String>() {{....才能编译代码。

为什么会这样?如果我只创建一个新实例,为什么我可以创建地图并使用菱形,但如果我通过匿名类创建地图,则代码无法编译?