访问 foreach 泛型 Scala 中的类字段



我创建了这段代码

trait Animal {}
class Chien extends Animal {}
class Chat(name:String) extends Animal {
  def this()=this("Chat sans nom")
}
class Siamois(name:String) extends Chat(name:String) {
  def this()=this("Siamois sans nom")
}
class BébéSiamois(name:String) extends Siamois(name:String) {
  def this()=this("Bébé Siamois sans nom")
}
val chat1:Chat=new Chat("Darius") // ne passera pas
val chat2:Siamois=new Siamois("Iroise")
val chat3:BébéSiamois=new BébéSiamois("Jazz")
val chat4:Siamois=new BébéSiamois("Enzo")
val chat5: BébéSiamois=new BébéSiamois("Elios")
val listeFelins=List(chat2,chat3,chat4,chat5)

这是我的问题,我如何访问 Chat、Siamois 和 BébéSiamois 中常用的字段名称?

def createAListeOfSiamoisAndChild[T<:Siamois](xs:List[T]):Unit={
  xs.foreach(println(_))
}

谢谢

让它val name: String .在普通类(即不是案例类(中,没有val的字段会生成一个private修饰符。Case 类将其作为整体语法糖的一部分,因此另一种可能性是使您的类case

此外,在传递值时不必指定类型(name: String(,通常 Scala 会推断出这一点。

最新更新