【问题标题】:Groovy basics - runtime behavior and encapsulationGroovy 基础 - 运行时行为和封装
【发布时间】:2015-01-28 17:58:26
【问题描述】:

我一直在阅读 Dierk Koenig 的“Groovy in Action”。 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 有何不同? 如果您有明确的答案,非常感谢您抽出时间回复。

【问题讨论】:

  • 您可以创建对象,然后在运行时将新方法绑定到它。 @see Groovy 元类

标签: java groovy


【解决方案1】:

对于第一个任务:

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

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

第二个任务:

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

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

【讨论】:

  • 非常感谢,这确实有道理。我在考虑 Java 中的多态性。谢谢!
最近更新 更多