class A {
private def sayHello() {
println "Anish"
}
}
def a_obj = new A()
a_obj.sayHello()
output : Anish
Is there any way to protect sayHello()
in groovy or am I missing something?
class A {
private def sayHello() {
println "Anish"
}
}
def a_obj = new A()
a_obj.sayHello()
output : Anish
Is there any way to protect sayHello()
in groovy or am I missing something?
You can use closures to achieve a similar effect, basically the same way you would do information hiding with Javascript.
There is defect on that in Groovy issue tracking system and that defect is still open.
Searching for
[groovy] private
reveals:groovy call private method in Java super class
What does 'private' mean in Groovy?
How to define private getter method in Groovy Bean?
It's not clear if it is a bug or by design, but it is going to get looked at again in Groovy 2.0
As other posts have mentioned, this may be a bug in Groovy. I've been sticking to a simple convention of prefixing private member names with a leading underscore (similar to Python) to denote that it's private which helps me understand from a client side perspective what I should be calling.
I think its a bug in groovy that is fixed in groovy++.
http://jira.codehaus.org/browse/GROOVY-1875