ソースをscalac
でコンパイルしてみてください。パッケージ名のディレクトリが作成され、クラス名の.classファイルが作成されることがわかると思います。つまり、まとめると、
- ソースコードはJavaの規則に従わず、ディレクトリやファイル名はなんでもよい。一つのソースコードに複数クラスとかも可能。
- コンパイル後のバイトコードはJavaの規則と同じく、パッケージに則したディレクトリ構成で配置され、クラス名と.classファイルのファイル名が一致するようになる。
となります。バイトコードはJVMから認識できる必要があるため、Javaと同じになると言うことです。なお、objectやラムダ式等は$付きの特殊なクラスが作成されますので、Scala上のクラスやobjectの数よりもと.classの方が多く作成されることがあります。
では、ソースコード同士はどうなるかというと、探しに行けないので、もちろん見えません。ただし、importされる側がコンパイルされて、バイトコードが生成された後であれば、ほかのJavaクラスと同じく見えるようになります。ファイル一個のちょこっとしたコードの時用とか、内部専用とか以外は、Javaの規則に従ったディレクトリとファイル構成にした方が良いかと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/14 01:08