如何声明从另一个方法的 return 类型引用的 variable/method 类型
How to declare variable/method type referred from the return type of another method
我的方法之一returns一种Class类型。我想将此 Class 类型用作另一种方法的 parameter/return 类型,例如:
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 中实现吗?
您可以像这样定义一个类型并可以使用该类型。现在你将 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 = {
...
}
}
我的方法之一returns一种Class类型。我想将此 Class 类型用作另一种方法的 parameter/return 类型,例如:
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 中实现吗?
您可以像这样定义一个类型并可以使用该类型。现在你将 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 = {
...
}
}