コンパニオンオブジェクト内のケースオブジェクトのリストを作成しようとしています。オブジェクトはすべて、密封された抽象クラスから継承します。しかし、コンパイラは、リスト内の各項目に対して「見つからない:value CompositeSpectrum」などと言っています。密封されたクラスとケースのオブジェクトはすべてコンパイルされます。コンパニオンオブジェクトでListを作成しようとするとエラーになります。Scala - 封印された抽象クラスを拡張するケースオブジェクトのリストを作成します。
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)
}
ここでの目的は、実行時にリストを反復することです。パターンマッチングも必要になりますが、テキストファイルを解析する際にも繰り返し処理する必要があります。 –