【问题标题】:Can java objects access their instance methods when coding in groovy?java对象在groovy中编码时可以访问它们的实例方法吗?
【发布时间】:2015-08-25 18:21:06
【问题描述】:

我编写了两个 java 类,带有一个构造函数和一个返回 JSON 数组的实例方法。我想在 groovy 中访问这些类的实例,并在我实例化的这些对象上调用 getArray 方法。我的问题是我不知道如何访问那些 getArray 方法?这是一些代码:

import JSONEncounterDesk;
import JSONHelpDesk;
import org.codehaus.groovy.grails.web.json.JSONObject

    class UsersController {

        def index() { 
            JSONEncounterDesk currEncounterDesk = new JSONEncounterDesk();
            JSONHelpDesk currHelpDesk = new JSONHelpDesk();

            return render(contentType: 'text/json') {
                ret
            }
        }
    }

【问题讨论】:

  • 您的 Java 代码是什么样的?如果您要调用的方法是公共的或包的(并且您的 Java 类与您的 Groovy 类在同一个包中),那么您应该能够访问。目前尚不清楚您遇到了什么问题。
  • 如果您的构建工具配置为同时编译两者,当然可以。 Java 和 Groovy 源文件都编译为 Java 字节码。您甚至尝试过编译吗?

标签: java json grails groovy


【解决方案1】:

Java 对象可以始终访问它自己的字段和方法。不管它是如何被调用的或是谁调用的。

更新

在几乎任何可以引用 Java 对象实例的语言中,任何 public 方法都是可访问的。通常使用语法obj.methodName()

其中包括:Groovy、JavaScript、JSP EL、JEXL、Scala,...

【讨论】:

    【解决方案2】:

    确保方法 getArray() 是公开的。 Java 和 groovy 都编译生成一个类,您可以在任何 Java 或 groovy 中访问这两者的方法。只有访问修饰符决定它们是否可访问。

    【讨论】:

      猜你喜欢
      • 2013-10-08
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2023-03-10
      相关资源
      最近更新 更多