簡體   English   中英

如何聲明從另一個方法的返回類型引用的變量/方法類型

[英]How to declare variable/method type referred from the return type of another method

我的方法之一返回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中完全實現這種類型的元編程嗎?

您可以定義這樣的類型並可以使用該類型。 現在,您將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 = {
          ...
        }
      }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM