I am trying to use the convenience of groovy script syntax to assign properties, but having problems with a specific case. I must be missing something here. I define class A, B, C as follows:
class A {
A() {
println "Constructed class A!"
}
}
class B {
B() {
println "Constructed class B!"
}
}
class C {
private member
C() {
println "Constructed class C!"
}
def setMember(A a) {
println "Called setMember(A)!"
member = a
}
def setMember(B b) {
println "Called setMember(B)!"
member = b
}
}
And then try the following calls in the script:
c = new C()
c.setMember(new A())
c.member = new A()
c.setMember(new B())
c.member = new B()
The last assignment leads to the error: "Unable to expose an object of class B to class A". Why doesn't he call the correct setMember method for class B, as for class A?
slojo source
share