Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以从Groovy调用Scala动态函数吗?_Java_Scala_Gradle_Groovy_Jvm - Fatal编程技术网

Java 我可以从Groovy调用Scala动态函数吗?

Java 我可以从Groovy调用Scala动态函数吗?,java,scala,gradle,groovy,jvm,Java,Scala,Gradle,Groovy,Jvm,我正在用Scala编写Gradle插件 为了允许我通过Gradle DSL配置插件和相关任务,我需要能够动态调用方法(即实际上不存在的方法)。如果我在Groovy中编写插件,我会使用methodMissing或propertyMissing,如上所述 在Scala中,我可以使用动态调用函数。这在从Scala代码调用函数时有效,但我似乎找不到从Groovy调用这些动态函数的方法(例如,当Scala插件作为另一个Gradle项目的一部分使用时) 可以从Groovy使用Scala的动态成员查找吗?还是

我正在用Scala编写Gradle插件

为了允许我通过Gradle DSL配置插件和相关任务,我需要能够动态调用方法(即实际上不存在的方法)。如果我在Groovy中编写插件,我会使用
methodMissing
propertyMissing
,如上所述

在Scala中,我可以使用动态调用函数。这在从Scala代码调用函数时有效,但我似乎找不到从Groovy调用这些动态函数的方法(例如,当Scala插件作为另一个Gradle项目的一部分使用时)


可以从Groovy使用Scala的动态成员查找吗?还是这是一条死胡同?

刚刚找到了我问题的答案。在Scala中,我需要实现与编写Groovy类并让Scala类扩展GroovyObjectSupport(Gradle集成所需)时相同的
方法Missing
propertyMissing
函数

如果其他任何人尝试执行类似的操作,下面是您需要在Scala中实现的函数签名:

class Foo extends GroovyObjectSupport {
  def methodMissing(m: String, arg: Any): Any = ???
  def propertyMissing(p: String): Any = ???
  def propertyMissing(p: String, v: Any): Any = ???
}