註釋主建構函式

/**
 * @param num Numerator
 * @param denom Denominator
 * @throws ArithmeticException in case `denom` is `0`
 */
class Division @throws[ArithmeticException](/*no annotation parameters*/) protected (num: Int, denom: Int) {
    private[this] val wrongValue = num / denom
    
    /** Integer number
     *  @param num Value */
    protected[Division] def this(num: Int) {
      this(num, 1)
    }
}
object Division {
  def apply(num: Int) = new Division(num)
  def apply(num: Int, denom: Int) = new Division(num, denom)
}

可見性修飾符(在本例中為 protected)應位於同一行中的註釋之後。如果註釋接受可選引數(在這種情況下 @throws 接受可選原因),則必須為註釋指定空引數列表:建構函式引數之前的 ()

注意:即使是相同的型別( 重複註釋 ) ,也可以指定多個註釋。

與沒有輔助工廠方法的 case 類(以及為註釋指定的原因)類似:

case class Division @throws[ArithmeticException]("denom is 0") (num: Int, denom: Int) {
    private[this] val wrongValue = num / denom
}