我的方法之一返回Class类型。我想将此Class类型用作其他方法的参数/返回类型,例如:
class A {
def aClass: Class[_] = {
if (...){
classOf[String]
}else{
classOf[Int]
}
}
//Neither works
def kClass : aClass = {
//...
}
def kClass : Class[aClass] = {
//...
}
}
它抱怨Cannot resolve symbol aClass
。
这种类型的元编程完全可以在Scala中实现吗?
答案 0 :(得分:0)
您可以定义这样的类型并可以使用该类型。现在,您将def作为类型,并且没有像aClass这样定义的类型,因此它给您带来了无法解析aClass的编译时错误。我认为这应该对您有用。
final type aClass = Class[_]
class A {
def aClass: Class[_] = {
if (true){
classOf[String]
}else{
classOf[Int]
}
}
//should works
def kClass: aClass = {
...
}
def kClass1: aClass = {
...
}
}