Только начал изучать Groovy, получил книгу PragProg "Программирование Groovy" и столкнулся с проблемой при компиляции одного из примеров скриптов:
class GCar2 {
final miles = 0
def getMiles() {
println "getMiles called"
miles
}
def drive(dist) {
if (dist > 0) {
miles += dist
}
}
}
def car = new GCar2()
println "Miles: $car.miles"
println 'Driving'
car.drive(10)
println "Miles: $car.miles"
try {
print 'Can I see the miles? '
car.miles = 12
} catch (groovy.lang.ReadOnlyPropertyException ex) {
println ex.message
GroovyCar2.groovy: 20: cannnot access final field or property outside of constructor.
@ line 20, column 35.
def drive(dist) { if (dist > 0) miles += dist }
^
Groovy версии до 1.7 не выдают ошибку. Я просмотрел любую документацию, которую смог найти, и не увидел обсуждаемой проблемы. Что здесь происходит?
Aaron