JavaとInnerClassとGroovy
@naka_aki_spl 付けるの面倒なんですけどね。原理主義だと付けないのが普通だから、内部クラスは外部のインスタンスに依存して然るべきなんでしょうけど、現実論だと名前空間でしかないですよね。
2011-04-30 10:43:19@naka_aki_spl 無名クラスだとデバッグするとクラス名がOuterClass$xxxxxとかわけわからなくなってしまうので、クラス定義して名前付けますね。
2011-04-30 10:46:14@irof java原理主義者ならstatic付けないんでしょうね。javaのことなど知らん原理主義者なら付けるかんじかなあと。俺は後者でして、依存「すべき」とも特に思っていません。こんな機能誰得?としか思ってない。
2011-04-30 10:53:37「外部のインスタンス渡してないからNullPointerExceptionになるよなー。」と思ってたけど「あ、やっぱりなるんだ。へー。」で止まった自分にガッカリなう。
2011-04-30 11:06:38個人的にはJavaでinner classを使うときにpublicにしない。publicならそいつは何かのinterfaceを実装しているときかな。inner classがprivateであるなら、outer classをテストすれば十分にinner classはテストできてる。
2011-04-30 11:15:01[Java][Groovy]JavaとGroovyがInnerクラスできゃっきゃうふふする話。 / Togetter - 「JavaとInnerClassとGroovy」 http://htn.to/hHnm2d
2011-04-30 11:16:22GroovyではInnerクラスはv1.6だかv1.7だかまで実装されてなかったから、鬼門といえば鬼門だな。Groovyの場合クロージャー使ってよね、という立場だろうしね。
2011-04-30 11:18:11それでもprivateなinner classをテストしたいときにGroovyは有効なんですよね。今のJavaプロジェクトでもテストコードは全てGroovyで済ませているけど、かなり楽。privateを気にせずアクセスできるし。
2011-04-30 11:18:55Javaオンリーだとテストコードをうまく書くためにプロダクトコードをprivateにしたいところをパッケージプライベートにするという事がたまにおきるんだけど、Groovyでテストコードを書けばprivateにアクセスできるからJavaのアクセスレベルを原義的に扱える。
2011-04-30 11:20:36@kyon_mm publicなinner classは無いですよねー…と思いましたが、EffectiveJavaのBuilderとかでは使ってたりしますね。privateのテストはclassだろうとmethodだろうと例外でしょう。レガシーコードだと…うん。
2011-04-30 11:20:42Javaに対してGroovyってカードを切れるのは凄く強いと思う。外から見てるとカードゲームでジョーカーきりまくってる風に見える。ずるい。
2011-04-30 11:24:23Innerクラスは4つある。static innerクラス、innerクラス, ローカルクラス, そして無名inner class。だったような気が。#Java あまり覚えてない。
2011-04-30 11:25:15うえっへへ^q^ RT @irof: Javaに対してGroovyってカードを切れるのは凄く強いと思う。外から見てるとカードゲームでジョーカーきりまくってる風に見える。ずるい。
2011-04-30 11:26:09privateにもアクセスできるけど、privateなことはクラス内で解決してください。テストするのはpublicな部分だけでいいような気も。#Groovy #Java
2011-04-30 11:26:48public static inner クラスは良く使いますよね! RT @kyon_mm: @irof Builderの部分がパッと思い出せないのですが、publicなインナークラスだとMap.Entryとかがあたります。一応インターフェースとはなっていますが、なんとも気持ち悪
2011-04-30 11:27:39EffectiveJavaの22で書かれてますので興味のある方どうぞー RT @fumokmm: Innerクラスは4つある。static innerクラス、innerクラス, ローカルクラス, そして無名inner class。だったような気が。#Java あまり覚えてない。
2011-04-30 11:32:11