Javaプログラマーが知らないJava言語仕様

実際のところどうなのかはわかりませんが、Java に関してタイトルのような状況があるとかないとか。以下、その内容を具体的に書いていきます。

  • ビット演算やシフト演算は C ならできるけれど Java ではできない。
  • 同じファイルの中でクラスを複数定義できない。
  • クラスに属さない列挙型は定義できない。

これらはすべて間違いなのですが、迷信的なことがまかり通っているようなのです。上記はすべて Java でできることばかりです。

少し補足すると、同じファイルの中では、public なクラスはひとつしか定義できないのであって、public ではないクラスであればいくらでも定義することができます。

列挙型は一種のクラスのようなものなのでしょうね。どのクラスにも属さない列挙型を定義できますし、結果として列挙型の定義のみを含むファイルというのもありです。