次のクラスについて考えてみます。
class MyPanel extends JPanel {
public MyPanel() {
super();
// Do stuff
}
public MyPanel(LayoutManager manager) {
super(manager);
// Do same stuff as the first constructor, this() can't be used
}
}
重複コードを回避しようとすると、2番目のコンストラクターで問題が発生します。これは、同じコンストラクターでとの両方super()
を呼び出すことができないためです。this()
共通のコードを別のメソッドに抽出することはできますが、この問題にはもっと洗練された解決策があるはずです。