uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

Groovyのアクセス修飾子はかざりか

現時点での結論:飾りである。涙ではない。
例えば、

class C {
  private f;
  private m(){}
}
x = new C()
x.f
x.m()

全然大丈夫(Groovy 1.5.4)。Groovyで定義されたクラスではなくて、JavaのAPIにいても、「"abc".value」とava.lang.String#valueはprivateメンバなのだがこれもOK。
http://docs.codehaus.org/display/GROOVY/Differences+from+Java
あたりには、「Methods and classes are public by default.(メソッドとクラスはデフォルトでpublicです。)」なんてあるから、じゃあデフォルトじゃなくてprivateと明示してみてもpublic。

そういうもん?!

(追記)今のところはそういうもんなので、気をつけろと書いてありました。

飾りじゃないのよ涙は

飾りじゃないのよ涙は