我對scala相對來說比較新,所以如果我問了一些愚蠢的問題,請耐心等待。 我有一個需求,我需要調用方法運行時。調用運行期間擴展特質的scala類
我正在由兩個類
trait Animal {
def walk():DataFrame
}
這是通過兩個類擴展延伸的性狀。現在
class Dog(sparkSession: SparkSession) extends Animal {
def walk():DataFrame = {
.............
}
}
class Cat(sparkSession: SparkSession) extends Animal {
def walk():DataFrame = {
.............
}
}
從一個配置文件,我會得到這些類名的列表
比方說像這樣
val animals = ["com.xy.Dog","com.xy.Cat"]
我需要調用這些類和執行方法走。 我可以做這樣的事嗎?
animals.forEach{ animalString =>
val animalObject = Class.forName(animalString).newInstance().asInstanceOf(Animal)
animalObject.walk
}
當你運行代碼時會發生什麼? –
我收到編譯錯誤: 「T0不帶參數」。 – user2166328