Java列挙型をパックするためのベストプラクティスは?[閉まっている]


8

Java列挙型をパッケージ化するためのベストプラクティスは何ですか?

列挙型ごとに別のファイルですか?
または
すべての列挙型に同じファイルがありますか?

長所と短所は何ですか?

回答:


9

まず、上書きルールは、enumがパブリックの場合、それ自体のファイルで宣言する必要があることです。これは、すべてのクラス、インターフェース、およびに適用されるJavaのルールでありenum、壊れることはありません。

非パブリックenumの場合、複数enumのが密接に接続されている場合を除いて、同じルールに従う必要があります。

たとえば、式プロセッサを構築し、式のサブタイプ、バイナリ式のサブタイプ、および単項式のサブタイプの列挙を宣言する場合、3つの列挙を1つのファイルにまとめることができます。


素晴らしい説明。パフォーマンスへの影響はありますか?各列挙型をそれぞれ持つよりも、同じクラスの列挙型を密接に接続している場合。
goodspeed 2012

1
@goodspeedファイル内のクラス/列挙/インターフェースの配置はパフォーマンスに影響を与えません(とにかく気付かないコンパイル速度へのわずかな影響を除いて)。
dasblinkenlight 2012

@dasblinkenlightパブリック列挙型は独自のファイルに配置する必要があると言って、2番目の文を証明するためのドキュメントがありますか?
最大

1
@Max enumsのルールは他のクラスのルールと同じです。クラスがパブリックの場合、クラス名がファイル名と一致するように、パッケージ名と一致する適切な場所でファイル内に存在する必要があります。
dasblinkenlight 2014

@dasblinkenlightああ、あなたの情報と時間をありがとう。
2014

4

列挙型はクラスなので、通常のクラスとしてパックする必要があります。列挙型がパッケージ内の多くの場所で使用されている場合は、それを単一のファイルに入れます。enumがクラスと強くリンクしている場合は、それをパブリック(または保護された)静的内部クラスとして配置します。

関連がない限り、すべての列挙型を1つのファイルに配置する理由はわかりません。


それらが関連している場合は、1つのクラスにネストできます。パブリッククラスPse164884 {public enum Cat {siamese、manx} public enum Dog {bullgog、poodle}}
Ray Tayek 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.