如何声明从另一个方法的 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 = {
          ...
        }
      }