scala 中 Groovy 的 classX.metaClass.getProperty
Posted
技术标签:
【中文标题】scala 中 Groovy 的 classX.metaClass.getProperty【英文标题】:Groovy's classX.metaClass.getProperty in scala 【发布时间】:2012-01-13 18:21:58 【问题描述】:在 scala 中是否有与 Groovy 非凡的 SomeClass.metaClass.getProperty 函数等效的东西?这对于制作特定领域的语言非常有帮助。例如,我可以说:val x = SomeClass(); x.arbitraryPropertyName
而不是 x.get("arbitraryPropertyName")
或 x("arbitraryPropertyName")
。
【问题讨论】:
【参考方案1】:根据您的描述,此功能听起来像 Scala 的Dynamic
。来自Scaladoc,
启用动态调用的标记特征。此实例 x trait 允许为任意方法名称调用 x.meth(args) 和 参数列表 args。如果 x 本身不支持调用,则它是 重写为 x.applyDynamic("meth", args)。
也就是说,如果你的类扩展了Dynamic
,那么x.arbitraryPropertyName
形式的调用会被转换为x.applyDynamic("arbitraryPropertyName")
,当然你可以定义applyDynamic
的行为。
【讨论】:
以上是关于scala 中 Groovy 的 classX.metaClass.getProperty的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java 调用 Groovy 或 Scala UDF 来更新 Oracle?
Java & Groovy & Scala & Kotlin - 20.Switch 与模式匹配
实时时间序列数据中的峰值信号检测Matlab R Golang Python Swift Groovy C ++ C ++ Rust Scala Kotlin Ruby Fortran Julia C