Groovy基础 - 运行时行为和封装

时间:2015-01-28 17:58:26

标签: java groovy

我一直在阅读" Groovy in Action"作者:Dierk Koenig。 Dierk声称这些是Java无法执行的Groovy任务:

- Changing the runtime behavior of objects after they have been created.

我认为Java也有 - 动态调度。任何人都可以解释它与Java的不同之处吗?

- Encapsulating logic in objects in a natural way. 

这与Java有什么不同? 如果你有明确的答案,非常感谢你的回复时间。

1 个答案:

答案 0 :(得分:3)

第一项任务:

  

在创建对象后更改对象的运行时行为。

我认为你把这个Groovy语言特性与Java中的多态这样的概念混淆了。例如,Groovy中的此功能允许您使用replace a method for an existing object at runtime,而动态分派是JVM的核心功能,它允许运行时根据对象的实际类型调度正确的方法调用。

第二项任务:

  

以自然的方式将逻辑封装在对象中。

我认为这是关于closures,它允许您存储对可以重复使用的代码块或方法的引用。 Java中不存在此功能。