我正在从 scala 动态运行 groovy 脚本。还有一些类的一些实例通过 setProperty() 传递给 groovy 脚本。例如,假设您有一个名为 TestA 的类,而类 TestB 继承了类 TestA。您正在将 B 类的实例传递给像这样的 groovy 脚本
setProperty("testB", testB) // testB is an instance of class TestB
并运行 groovy 脚本,我可以访问在 TestB 中声明的变量。但是当我尝试访问 TestA 的变量时,它是 TestB 的超类,groovy 给出了一个错误,说“类没有这样的属性”。
我仍然可以从给定的实例中调用 TestA 和 TestB 的方法。所以如果你只写setter和getter,我可以访问TestA的变量,但我不想这样做。
有没有在不使用 setter/getter 的情况下访问 TestA 的变量?喜欢使用 Expando 什么的?