在scala中,有什么与Groovy出色的SomeClass.metaClass.getProperty函数等效的东西吗?这对于制作特定于域的语言将非常有帮助。例如,然后我可以说:val x = SomeClass(); x.arbitraryPropertyName而不是x.get("arbitraryPropertyName")x("arbitraryPropertyName")

最佳答案

从您的描述来看,此功能听起来像Scala的Dynamic。从Scaladoc



也就是说,如果您的类扩展了Dynamic,则形式x.arbitraryPropertyName的调用将转换为x.applyDynamic("arbitraryPropertyName"),并且当然可以定义applyDynamic的行为。

09-05 13:24