4

私はIBM Rational Software Architect for Websphere Software (RAD)を使用して、コード アナライザーを実行しました。カスタム Java Exception クラスは final でなければならないという警告が表示されました。しかし、それには正当な理由がありません。とにかく、一部の要件については、例外階層を維持するためにカスタム例外クラスを拡張する必要があります。だから決勝は駄目。場合によっては、オブジェクトの作成を制限したい場合は、コンストラクターをプライベートとしてマークできます。

では、カスタム例外クラスが最終的なものであるべき理由を教えてください。

4

4 に答える 4

4

著書『Effective Java : Josh Bloch』を参照してください。Josh Bloch は、クラスに final をマークするか、不変性を維持し、予期しない動作から保護するために拡張ポイントを文書化するよう適切な議論を示しています。

17(承継等禁止の意匠及び文書)のことです。

いずれにせよ、これは推奨事項にすぎない可能性があり、無視してもよいと確信している場合は、それについて考えたことを確認するためのものです.

于 2013-05-20T06:12:54.980 に答える
0

クラスを Final にする唯一の理由は、他のクラスによって拡張されるのを避けるためです。これを念頭に置いて、クラスを final にするかどうかはあなた次第です。

于 2013-05-20T06:39:57.520 に答える
0

カスタム例外クラスは、私が信じている例外クラスを拡張します。このカスタム クラスは、処理する例外に固有のものになります。したがって、別のレベルの階層を本当に追加したい場合を除き、このクラスを final にすることは理にかなっています。別のカスタム例外クラスを作成したい場合は、例外クラスを再度拡張することで作成できます。また、最終でなければならないという警告が表示されますが、より多くのレベルの継承階層が必要な要件がある場合は、クラスを非最終として定義できます。

于 2013-05-20T06:18:10.650 に答える