【问题标题】:Does Nashorn have meta programming similar to Groovy metaClass?Nashorn 是否有类似于 Groovy 元类的元编程?
【发布时间】:2013-07-01 23:15:31
【问题描述】:

只是想知道在 Nashorn 中是否可以在运行时扩展 Java 类,类似于 Groovy 的元类?

我一直在研究 InvokeDynamic,但我不确定这是否是我想要的,Java.extend 允许我扩展一个类,但我只有在实例化后才能获得对对象的引用,这发生在外部我的应用程序并传入。所以我只收到 Object 实例。

从我的研究看来,Groovy 方法实际上在运行时扩展了 Class,并且 Class 的任何实例化都获得了扩展方法。

如果我的术语不正确但我是 Java 新手,请原谅我。

谢谢

【问题讨论】:

  • 你的意图是什么? Groovy 的元类不是 Java 的 extends 关键字(Groovy 也有)。 invokedynamic 是一个新的字节码。也许 javascript 的原型是你想要的?
  • 您好,Will P。我要做的是在运行时动态扩展 Nashorn 中的 Java 类或 Java 类实例。我可以使用原型设计来扩展 Java 类,如果我实例化该类,这将起作用,但我不创建对象,它们是在其他地方创建并传入的。据我所知,我不能扩展 Java 类在 Nashorn 中使用原型设计实例。
  • 你能发布一个你想做的例子吗?你想为你收到的对象添加一个方法,或者类似的东西?

标签: java javascript groovy metaprogramming nashorn


【解决方案1】:

我认为this 是您正在寻找的。​​p>

这是关于如何在 Nashorn 中扩展 java 类的文档。该链接包含大量有关将 Java 与 JavaScript 交互的信息,反之亦然。

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2019-10-23
    • 2015-09-21
    • 2022-01-02
    • 2011-10-14
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多