我一直在检查Groovy,我觉得将Java程序一点一点地移动到Groovy - 抓取一个类并使其成为Groovy类,然后一次转换方法guts - 可能是一种相对理智的方式来利用一些Groovy语言功能。我也会在Groovy中做新的课程。
问题:
答案 0 :(得分:13)
这是一种合理的转换方式吗?
是
我可以将所有公共方法和字段保存在Java中吗? Groovy“只是”一个超集,对吗?
几乎是一个超集,但并非完全如此。例如,Groovy中的==
调用.equals
方法,但在Java中它检查2个引用是否引用同一个对象。另一个例子是Groovy不支持这种构造数组的语法
Object[] objs = new Object[] { 1, 2, 4 }
最后一个例子是,当调用重载方法时,Groovy在选择要调用的方法时使用参数的运行时类型,而Java使用编译时参数类型。 This page有两个语言之间相当全面的差异列表。
在Groovy中你不会做什么样的事情,但更喜欢Java呢?
我在Groovy中编写所有内容,因为我使用Groovy比使用Java更有效率,而且我更喜欢Groovy编程。如果某些代码存在性能问题,我只会使用Java AND 我可以证明用Java编写它解决了这个问题。在实践中,这从未真正发生在我身上。
使用Java可能还有社会政治原因,例如:一些代码需要由许多人维护,其中一些人不了解Groovy并且不想学习它。
答案 1 :(得分:4)
来自Wikipedia:
大多数 Java代码也是语法上的 有效的Groovy。
并且
一些Groovy代码看起来会像 在Java语言中,但 Groovy是 不是Java的超集。但是,除非 很少有不兼容性,通常可以 将.java文件重命名为.groovy文件 它会起作用。 Groovy允许 编码器遗漏了一些元素 在Java中是必需的,所以Groovy代码 可以更紧凑。这使得 Java的Groovy学习曲线 开发人员逐渐,因为他们可以 从Java语法开始逐渐开始 学习添加Groovy功能。
关于你的其余问题,我认为这似乎是一种合理的进步方式。我会尝试专注于更改相关的类以便一起使用Groovy,这样我就很容易知道哪些类在将任务分配给开发人员时使用哪种语言,而开发人员可能不会同时使用这两种语言。