当前位置: 首页 > 面试题库 >

Groovy语法是Java语法的确切超集吗?

笪健
2023-03-14
问题内容

作为一名Java程序员,我确实没有Groovy背景,但是最近我经常使用Groovy来扩展Maven(使用GMaven)。到目前为止,我可以在Groovy中使用所需的所有Java代码,并添加Groovy糖(元类方法,更多运算符,闭包)。我对Groovy的了解还远远不够完整,但是我喜欢它,特别是出于脚本目的(我在企业场景中使用非静态类型的语言有点谨慎,但这不是这里的主题)。

无论如何,问题是:

有效的Java代码的每一位是否都自动有效的Groovy代码?
(我说的是源代码,而不是编译的类,我知道Groovy可以与Java类进行交互。)或者在Groovy中是否存在非法的Java构造?也许保留的Groovy关键字可以用作Java中的标识符,还是其他?还是有意将Groovy设计为与Java
100%源兼容?


问题答案:

不是。

我最喜欢的不兼容性:文字数组:

String[] s = new String[] {"a", "b", "c"};

在Groovy中,在这种情况下,花括号应包含闭包,而不是文字数组。



 类似资料:
  • 问题内容: 这些方法之间在功能上有区别吗? 编辑(从其他贡献者添加了此语法): 问题答案: 不,但第一个是首选样式。 编辑: 另一个选项是 此外,它还允许调用者使用varargs语法。

  • 问题内容: 我正在尝试转换: 到一个普通的SqlParameter: 除了这行之外,我现在设法转换了每一行,但出现了以下错误: 全功能代码: 问题答案: 我认为您正在寻找的东西; 编辑完问题后; 您可以使用方法。方法已过时。喜欢; 如果将SQL Server用作数据库,则应使用相同的名称命名参数add to 。 使用时,参数的顺序很重要。因为如上所说: 当CommandType设置为Text时,O

  • 问题内容: 我正在尝试在内添加HTML代码段,但无法使用包含功能。看来的当前语法与以前的语法不同:我看到许多示例使用 但是在官方文档中,它说使用 但随后在页面下方显示为 无论如何,我尝试了 我的代码片段不是很多代码,但是有很多事情要做。这可能会引起问题,所以我只用单词代替了内容,仍然一无所获。 我还尝试过直接在页面中声明模板,如下所示: 并遍历了引用脚本的所有变体,仍然一无所获。 我的页面还有很多

  • 问题内容: 我是一名新的Python程序员,他正在从2.6.4跃升至3.1.1。在我尝试使用“ else if”语句之前,一切都很好。解释器在“ else if”中的“ if”之后给了我一个语法错误,原因是我似乎无法弄清。 我可能缺少一些非常简单的东西;但是,我无法自行找到答案。 问题答案: 在python中,“ else if”被拼写为“ elif”。 另外,您还需要在和之后加上一个冒号。 简单

  • 打开和关闭连接: 注册用户 错误消息 '/'应用程序中的服务器错误。 INSERT INTO语句中存在语法错误。 描述:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的起源的更多信息。 异常详细信息:系统。数据。OleDb。OleDbException:INSERT INTO语句中的语法错误。 源错误: 第100行:命令。ExecuteNonQuery();第1

  • 问题2B:如果我想指出“char that not before quote”,我是否应该使用“.<!before$quote>”而不是“<!before$quote>”。??