java - Scala 中公共(public)值的使用

标签 java scala oop

我来自 Java,像大多数 Java 程序员一样,我读过 J. Bloch 的《Effective Java》,其中他建议尽可能减少字段访问级别。我对像 akka 这样强大的框架使用这样的公共(public)值感到有点惊讶:

trait Actor {

    type Receive = Actor.Receive

    implicit val context: ActorContext = {
       //ommited for simplicity
    }


    implicit final val self = context.self //MUST BE A VAL, TRUST ME

    //...
}

Scala 中使用公共(public) val 很常见吗?对此的约定是什么?因为在Java中,一般情况下我肯定不会公开字段。 (当然,在某些情况下私有(private)字段可能不切实际,但这绝对是一个异常(exception))。

最佳答案

在java中,使用getter和setter而不是公共(public)字段,而scala中的统一访问主体必须使用getter和setter。

http://joelabrahamsson.com/learning-scala-part-nine-uniform-access/

关于java - Scala 中公共(public)值的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39125842/

相关文章:

java - 当我使用 BlueJ 将 Java 项目转换为 .jar 时,该项目无法像直接从 BlueJ 那样工作

java - 将 SIGTERM 发送到 JVM 是否安全

scala - 如何初始化具有多个操作的字段?

scala - Scala 中的 protected 函数

ruby-on-rails - Rails 架构问题

java - 多重继承,组合功能

java - 使用 Squirrel 连接到 Derby 嵌入式数据库

Java: Swing 计时器等待

java - 如何以编程方式显示表格最后一行的滚动条

c# - 当 Liskov Substitution 提到子类型时,它是在谈论 C# 上下文中的派生类吗?