当我通过Eclipse重命名.scala文件时,类名称本身不会重命名。重命名Scala IDE中的.scala文件不会重命名类
这是预期的行为?它似乎没有破坏任何东西。
我期望它被重命名,来自Java背景的文件名/类名必须相等。
当我通过Eclipse重命名.scala文件时,类名称本身不会重命名。重命名Scala IDE中的.scala文件不会重命名类
这是预期的行为?它似乎没有破坏任何东西。
我期望它被重命名,来自Java背景的文件名/类名必须相等。
scala中不需要类名和文件名之间的对应关系。 你可以(并且通常)在每个scala文件中定义多个类型。 编译器将尝试为每个公共类型创建一个不同的.class文件,其文件名与类型名称相对应,用于与java的互操作性(对于在java中没有直接对应关系的复杂类型或嵌套类型,scalac将生成的.class奇怪/错位的名称......)
可能不是一个完整的清单上为什么此对应的是不执行(A几个音符,但只给你一个想法)文件:
case class Foo(foo:String)
对应于一个完整的,稍微复杂的Java类,但它在它自己的文件中似乎很浪费......trait Fooer {def foo="foo"}
可能被转换成各种类java,它们实现了特性的“默认实现接口”特性。对于scala语法所允许的嵌套对象/类/类型,这会变得更糟,并在一些常用的scala模式中使用。此外,还有Scala语义(特别是密封特征),实际上需要在单个文件中定义多个类。 –
在scala中.scala文件可以包含许多(公共)类或包。
scala中的文件名不必与文件中的任何类名匹配。你可以在scala文件中拥有你想要的类。尽管建议对齐,但包装结构也不必与文件夹结构相匹配。
SO不是一个问题跟踪! – ziggystar