Eclipse を介して .scala ファイルの名前を変更すると、クラス名自体の名前は変更されません。
これは予想される動作ですか?何も壊れていないようです。
名前が変更されることを期待しています.Javaのバックグラウンドから来て、ファイル名/クラス名は互いに等しくなければなりません。
クラス名とファイル名の対応はscalaでは不要です。各 scala ファイルで複数の型を定義できます (通常はそうします)。コンパイラは、Java との相互運用性のために、型名に対応するファイル名を持つパブリック型ごとに異なる .class ファイルを作成しようとします (Java で直接対応しない複雑な型またはネストされた型の場合、scalac は .class を生成します。奇妙な/壊れた名前のクラスファイル...)
この通信が強制されない理由についてのいくつかのメモ (おそらく完全なリストではありませんが、アイデアを提供するためのものです):
case class Foo(foo:String)
完全でやや洗練されたJavaクラスに対応していますが、それを独自のファイルに入れるのは無駄に思えます...trait Fooer {def foo="foo"}
、特性の「デフォルト実装とのインターフェース」の性質を実装するさまざまな Java のような型に変換される可能性があります。これは、scala の構文で許可され、いくつかの一般的な scala パターンで使用される入れ子になったオブジェクト/クラス/型ではさらに悪化します。scala では、.scala ファイルに多くの (パブリック) クラスまたはパッケージを含めることができます。
scala でのファイル名は、ファイル内のどのクラス名とも一致する必要はありません。scala ファイルには、必要な数のクラスを含めることができます。パッケージ構造もフォルダー構造と一致する必要はありませんが、一致させることをお勧めします。