如何使用IntelliJ IDEA

时间:2015-10-28 13:43:54

标签: scala intellij-idea

提供简单的课程

class MyClass {
  private var myVar: String = _
}

如何为myVar生成setter和getter?

Code | Generate菜单显示:

  • 覆盖方法......
  • 实施方法......
  • 委派方法......
  • 版权
  • equals()和hashCode()
  • 的toString()
  • 同伴对象

IntelliJ版本:14.1.5 操作系统:OS X 10.10.5

2 个答案:

答案 0 :(得分:7)

@Zoltán是对的 - 在Scala中,getter和setter并不常见,因为:

  1. Scala鼓励不变性
  2. Scala在创建字段时已经为您生成了它们 - 它们根本不是根据Java bean约定命名的(您可以鼓励Scala 生成这些方法,因为它们可以真正限制谁查看并修改字段 - 想想final private[this] val)。
  3. 由于#2,可以从var someField转到private var _someFielddef someField = this._someFielddef someField_=(value: String) = { this._someField = value },而不会让消费者更新其代码。换句话说,更改是源兼容的(虽然我认为它不是二进制兼容)。
  4. 如果您需要Java bean样式的getter和setter,只需使用@BeanProperty注释该字段, scalac 将为您生成getter和setter:

    import scala.beans.BeanProperty
    
    class MyClass {
      @BeanProperty
      var myVar: String = _
    }
    

    请注意,为了获取布尔属性的is getter和setter,您需要使用BooleanBeanProperty

答案 1 :(得分:3)

您可以使用Scala Bean Property

import scala.beans.BeanProperty

class MyClass {
  @BeanProperty var myVar: String = _
}
  • @BeanProperty - 为属性生成getter和setter。 (要么 如果bean是val),只是一个吸气剂。