我一直在阅读" 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有什么不同? 如果你有明确的答案,非常感谢你的回复时间。
答案 0 :(得分:3)
第一项任务:
在创建对象后更改对象的运行时行为。
我认为你把这个Groovy语言特性与Java中的多态这样的概念混淆了。例如,Groovy中的此功能允许您使用replace a method for an existing object at runtime,而动态分派是JVM的核心功能,它允许运行时根据对象的实际类型调度正确的方法调用。
第二项任务:
以自然的方式将逻辑封装在对象中。
我认为这是关于closures,它允许您存储对可以重复使用的代码块或方法的引用。 Java中不存在此功能。