【发布时间】:2015-06-07 11:05:17
【问题描述】:
我最近开始学习 Scala,并尝试在 Java 中使用我的 Scala 代码。导入的 jar 文件可以工作并包含我的类和方法;但是,当我发现在可用于导入的类中,我可以同时访问 DiceRoller 和 DiceRoller$ 时,我有点惊讶,而且我还可以访问诸如此类的方法作为普通类中的 attribute_$eq。
DiceRoller 在 Scala 中被定义为 object,而其余的类则被定义为 class,如果这可能对此事有所启发的话。
我也知道匿名类和函数的基本理论,以及 Scala 如何考虑诸如“==”函数之类的操作,所以这不是我的意思,即使它可以相关。
当我导入 Java 包时,这些类和方法无法访问。 那么,为什么我在导入 Scala jar 文件时可以调用它们呢?我可以将这些匿名类和方法声明为私有吗?
【问题讨论】: