我正在努力处理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'类型的对象,而不是一个类(类型)。类(类型)不是对象,不能被返回,它们存在于并行的宇宙中。 –