註釋主建構函式
/**
* @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
}