У меня есть следующий код:
class MyClass {
def myMethod() {
variable = "I am a variable"
}
def propertyMissing(String name) {
println "Missing property $name"
}
}
MyClass myClass = new MyClass();
myClass.myProperty
myClass.myMethod();
В myClass.myProperty на консоль было напечатано Missing property myProperty
.
Но затем в myClass.myMethod()
groovy не предпринимает попытокперейти на propertyMissing
, но вместо этого просто выдает
groovy.lang.MissingPropertyException: No such property: variable for class: MyClass
Некоторые результаты поиска в Интернете указывают, что это происходит потому, что myClass.myProperty
вызывает метод получения, который перенаправляет на propertyMissing.
Я предполагаючто в методах класса groovy не проходит через методы getter для переменных, и поэтому propertyMissing не вызывается?
Есть ли способ достичь того, что я хочу сделать, используя динамический propertyMissing
или getProperty
, или что-то в этом роде?
PS Я не хочу делать def variable = ...
или String variable = ...
в myMethod.Я надеюсь, что синтаксис в myMethod
останется variable = ...
, но добавление чего-либо вне этого метода приемлемо.