Я динамически запускаю отличные скрипты из scala. И есть некоторые экземпляры некоторых классов, передаваемых в groovy-скрипты через setProperty (). Например, допустим, у вас есть класс с именем 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, но я не хочу этого делать.
Есть ли в любом случае доступ к переменным TestA без использования setter / getter? как использовать Expando или что-то?