Java の static inner class がテストに便利 ― 2025年02月06日 13時57分42秒
Java は接着剤の様に大量にクラスを実装する。これがインラインで実装するとテスト等で使えなくなることも多い。そこで内部クラスを使う。内部クラスのインスタンスを生成するのには、外側クラスのインスタンスを用いて生成する必要がある。内部クラスに static を付けると、インスタンス無しで直接生成出来るのだ。static 内部クラスは外部クラスのメンバー変数等にアクセスすることが出来なくなる。
C++ では tuple や pair を用いて、一時的に複数の変数をまとめたり出来る。Java ではそれが無いため、一つずつクラスを作成しがちになる。C++ では Java ほど内部クラスを使わなくてすむ理由のだろう。
A が static class の方法で、B が非 static class の簡単な比較。
class ParentA {
static class ChildA {
}
}
class ParentB {
class ChildB {
}
}
...
var a = new Parent.ChildA();
var p = new ParentB();
var c = p.new ChildB();
最近のコメント