[英]How to invoke default constructor using scala reflection if we have default value defined in our constructor
class Person(name: String = "noname", age:Int = -1){}
object ReflectionTester{
def main(args: Array[String]) {
val m = ru.runtimeMirror(getClass.getClassLoader)
val classTest = m.staticClass("Person")
val theType = classTest.toType
//class mirror
val cm = m.reflectClass(classTest)
val ctor = theType.decl(ru.termNames.CONSTRUCTOR).asMethod
}
}
調用類鏡像為我提供了傳遞名稱和年齡的默認構造函數,但是推斷構造函數太正確了,我可以在其中創建具有默認值的人並允許我根據需要設置它們。
你如何在方法鏡像中調用它。 在這種情況下,我期待 4 個構造函數,1 個具有兩個值,2 個用於單個字段,1 個沒有字段。
我選擇這個作為 VO 的例子,所以請不要對設計發表評論。 問題是如何推斷具有默認值的構造函數
只有一個構造函數。 默認值保留在 Person 伴隨對象中。 調用new Person(age = 10)
變成了類似new Person(Person.<init>$default$1(), 10)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.