コンパニオン オブジェクトにケース オブジェクトのリストを作成しようとしています。オブジェクトはすべて、封印された抽象クラスから継承します。しかし、コンパイラは、リスト内の各項目に対して「見つかりません: 値 CompositeSpectrum」などと言っています。シールされたクラス オブジェクトとケース オブジェクトはすべて正常にコンパイルされます。コンパニオン オブジェクトで List を作成しようとすると、エラーが発生します。
sealed abstract class Peculiarity(val abbreviation: String, val description: String) {
case object CompositeSpectrum extends Peculiarity("comp", "composite spectrum")
case object NebularFeaturesPresent extends Peculiarity("neb", "nebular features present")
case object ShellStar extends Peculiarity("sh", "shell star")
case object Uncertainty extends Peculiarity(":", "uncertainty")
case object VariableSpectralFeatures extends Peculiarity("var", "variable spectral features")
case object WeakFeatures extends Peculiarity("wl", "weak features")
case object VeryBroadAbsorptionFeatures extends Peculiarity("nn", "very broad absorption features")
case object BroadAbsorptionFeatures extends Peculiarity("n", "broad absorption features")
case object EmissionLinesPresent extends Peculiarity("e", "emission lines present")
case object NIIIandHEIIEmission extends Peculiarity("f", "NIII and HeII emission (O stars)")
case object EnhancedMetalFeatures extends Peculiarity("m", "enhanced metal features")
case object OtherPeculiarity extends Peculiarity("p", "other peculiarity")
case object VeryNarrowAbsorptionLines extends Peculiarity("s", "very narrow absorption lines")
}
object Peculiarity {
val peculiarities = List[Peculiarity](
CompositeSpectrum,
NebularFeaturesPresent,
ShellStar,
Uncertainty,
VariableSpectralFeatures,
WeakFeatures,
VeryBroadAbsorptionFeatures,
BroadAbsorptionFeatures,
EmissionLinesPresent,
NIIIandHEIIEmission,
EnhancedMetalFeatures,
OtherPeculiarity,
VeryNarrowAbsorptionLines)
}