我正在努力處理Class
類型的東西,我寫的東西,答案可能涉及泛型,但我很困擾什麼是正確的解決方案。在Scala方法中返回類類型的選項
我有一個具有多個子類(Car
,Bus
,Train
,Motorcycle
等)的Scala類Vehicle
:
class Vehicle {
...
}
class Car extends Vehicle {
...
}
class Motorcycle extends Vehicle {
...
}
我現在想寫一個工具方法,可以映射到字符串一個子類Vehicle
(即,Class
它是,不那個類的一個實例):
object VehicleUtils {
def mapToVehicleType(vehicleType : String) : Vehicle = {
var vType : Vehicle = null
if(vehicleType == "car") {
vType = Car
} else if(vehicleType == "motorcycle") {
vtype = Motorcycle
} else if(...) {
...etc.
}
vType
}
}
問題是我混淆/模糊類型與實例。我不希望mapToVehicleType
方法返回例如Car
的實例。如果提供「car
」作爲輸入等,我希望它僅返回Car
類。任何人都可以發現我要去哪裏以及解決方案是什麼。如果可能的話,我也想使用Scala Options
,因爲mapToVehicleType
方法肯定可以返回null
。
您能更具體地瞭解您正在嘗試做什麼嗎?你的方法返回一個'Vehicle'類型的對象,而不是一個類(類型)。類(類型)不是對象,不能被返回,它們存在於並行的宇宙中。 –