在scala shell中定义的类是公共静态的而不是公共的,这对我来说很奇怪,我不知道为什么,有人知道吗?谢谢
scala> class Split{}
defined class Split
scala> import java.lang.reflect.Modifier
import java.lang.reflect.Modifier
scala> val clazz = classOf[Split]
clazz: Class[Split] = class Split
scala> println(Modifier.toString(clazz.getModifiers))
public static
默认情况下,shell 中定义的所有类都被括起来。它们嵌套在其他类中,这些类由 shell 定义。
scala> println(clazz.getName)
$line2.$read$$iw$$iw$Split
我猜,它们是静态的,因为无意让它们访问封闭类的成员。 静态可能具有与重新定义同一类和垃圾回收相关的优势。但我在这里钓鱼,其他人肯定可以提供更准确的答案。