问题标签 [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 投票
1 回答
81 浏览

perl - 当要匹配的文本不在 $_ 中时,如何将范围运算符与正则表达式一起使用?

我在解析文件的一部分时尝试使用范围运算符。基本上,我的代码包括:

我的问题是这段代码使用了隐式$_变量。

我的实际代码使用变量来存储当前行,因为我在$line使用范围运算符对其进行测试之前对其进行了一些更改。我还没有找到将..运算符与显式变量一起使用的方法。我通过$_在测试前分配找到了一种解决方法,但这对我来说看起来像一个丑陋的黑客:

有没有更清洁的方法来做到这一点?

0 投票
1 回答
144 浏览

perl - 标量上下文中的 Perl ARGV 值

给定以下 Perl 脚本:

这是输出:

我对 的输出感到困惑print "$ARGV\n"。如果我尝试这样做print "$ARGV[-1]\n",则会将空行打印到 STDOUT。如果我直接引用$ARG[2],我也会得到一个空行。

为什么使用file4时要打印脚本$ARGV

作为一个反例,我尝试print "$d\n"了 ,期望得到file4. 我得到了一个空行,而不是预期的输出。如何$ARGV工作?

0 投票
2 回答
23507 浏览

java - Java- 此语言级别不支持 Diamond 类型

我刚刚开始研究一个 Java 项目,并使用 IntelliJ 从 GitHub 下载了源代码——我以前从未使用过 IntelliJ,但有人告诉我它是一个比 Eclipse 更好的 IDE(这是我使用的当我最后一次进行 Java 开发时——大约是在四年前)。

当我尝试在我的计算机上本地构建源代码时,从 GitHub 中提取了最新的工作版本,我在几行不同的代码行上得到了一个编译错误 - 错误说:

错误:(27, 34) java: diamond 运算符在 -source 1.5 中不受支持(使用 -source 7 或更高版本来启用 diamond 运算符)

出现这些编译错误的行如下:

如果我选择该行,并Alt + Enter在错误上执行,它会显示一条消息,说明我可以

“将语言级别设置为 7 - Diamonds、ARM、Multi-cache 等”

但是,如果我选择此选项,则不会发生任何事情...

在该pom.xml文件中,有以下 xml:

但是当我查看这个错误时,我在以下位置找到了答案:Diamond type are not supported at this language level,这表明我应该使用 maven1.7 或更高版本 - 看来该项目已经在使用 1.8 版本,所以我不明白为什么我会收到这个编译错误......

有人有什么建议吗?

0 投票
0 回答
337 浏览

java - 以泛型类型作为返回参数的菱形运算符

在 Java 中,我发现了这样的奇怪方法声明:

这是什么意思<T> T?这<T>之前是什么意思T,为什么返回的类型不是 just "T"

我已经下载了org.apache.commons.dbutils.BeanProcessor类的源代码并找到了以下方法:

如您所见,返回的bean对象的T类型为 not <T> T。为什么?

0 投票
3 回答
84 浏览

java - 为什么在 Outer 中使用菱形运算符失败.Inner obj2 = new Outer<>().new Inner() ?虽然与 Inner 相同可以吗?

为什么在实例化通用外部类(与内部类一起)时使用菱形运算符会在片段 2 中产生错误,而片段 1 则完全没问题?

我知道稀有类型是被禁止的,但我的情况不是稀有类型——在稀有类型中,外部和内部都是通用的,但其中一个(任何一个)用作原始类型,另一个用作通用类型。

片段1:

片段 2:

PS 在 Eclipse 编译器上测试。

0 投票
3 回答
2088 浏览

java - Java 10:Java 7 的 Diamond 推理能否与本地类型推理一起使用?

JEP 286中,我们看到我们将能够var在 JDK 10 (18.3) 中利用本地类型推断 ()。JEP 声明以下编译,这是预期的:

我很想知道如果我们尝试以下操作会发生什么:

我在第二个片段中提出的建议甚至可以编译吗?如果是这样(我怀疑),会ArrayList接受Object它的泛型类型吗?

我会自己尝试,但我无法访问任何可以安装早期版本的机器。

谢谢!

0 投票
1 回答
5806 浏览

java - JDK 1.6 的菱形语法替代方案

任何人都可以建议如何重写下面的代码以使其适用于 JDK 1.6,好吗?

0 投票
2 回答
286 浏览

perl - 双while循环中的Perl菱形运算符挂起

在我的 Perl 脚本中,我有一个双无限 while 循环。我使用菱形运算符从文件中读取行。但不知何故,如果我的脚本到达文件的最后一行,它不会返回 undef,而是永远挂起。

如果我将代码减少到单个 while 循环,则不会发生这种情况。所以我想知道我是否做错了什么,或者这是否是语言的已知限制。(这实际上是我的第一个 perl 脚本。)

下面是我的脚本。它旨在计算 fasta 文件中 DNA 序列的大小,但在任何其他具有多行文本的文件中都可以观察到挂起行为。

Perl 版本 5.18.2

从命令行调用,如perl script.pl file.fa

我放了一些调试打印语句,以便您可以看到打印的最后一行是“Get line”,然后它挂起。

0 投票
2 回答
973 浏览

intellij-idea - IntelliJ - 语言级别 5 不支持菱形类型和 Lambda 表达式

最近 IntelliJ 一直给我一个关于使用 lambda 表达式和菱形类型的错误。

我得到的错误是Lambda expressions are not supported at language level '5'

我检查了我的项目结构,它显示我的语言级别设置为 8。

在此处输入图像描述

谢谢你的时间。

0 投票
1 回答
623 浏览

java - 为什么eclipse不在方法参数中使用菱形运算符

我有这样的课:

我检查了首选项 -> Java -> 编辑器 -> 保存操作 -> 配置 -> 不必要的代码 -> 删除冗余类型参数(1.7 或更高版本)中的选项

现在我创建一个主类:

现在我保存文件。

我本来希望eclipse在保存文件时删除setter中的“String”类型参数,但它留在那里。

任何想法为什么会出现这种情况(是否有原因或者我错过了我必须启用的设置?)

谷歌