1
我使用反射創建斯卡拉對象。我沒有「T」隨時訪問,鍵入鑄像一個對象通常會喜歡這樣的:有沒有一種使用反射類型轉換Scala對象的方法?
def makeOne[T](o:Object) = o.asInstanceOf[T]
我有一個universe.Type壽。在我處理早些時候我做這樣的事情:
def analyze[T](o:Object)(implicit tt:TypeTag[T]) = {...}
我救tt.tpe,這麼多後,當我創建類型T的對象,我已經失去了「T」,但我仍然保留TT .tpe。
有什麼辦法,我可以用這個來universe.Type型投我的對象,而不必需要「T」,如.asInstanceOf [T]?
(順便說一句,我可以使用反射就好創建對象......它只是創建的對象不知道它的類型。它只是認爲它的任何。)
您遇到的主要問題是'asInstanceOf'是一個編譯時構造,但您使用的是運行時反射。 –
如果你不知道你要投射到在編譯時那麼有什麼用鑄造的類型? –
你應該保持'T'身邊 - 我想不出,你仍然可以有'tt'但在'T'無法通過的情況。另外,這聽起來有點像XY問題...... – Alec