考慮下面的代碼:如何通過反射來訪問一個字段的值(斯卡拉2.8)
class Foo(var name: String = "bar")
現在我試圖獲得的價值,並通過反射正確類型的吧:
val foo = new Foo
val field = foo.getClass.getDeclaredField("name")
field.setAccessible(true)
//This is where it doesn't work
val value = field.get(????)
我嘗試了諸如field.get(foo)之類的東西,但它只返回一個java.lang.Object,但沒有String。基本上我需要正確的類型,因爲我想調用一個方法(例如toCharArray)。
建議如何做到這一點?
我修復了丟失的getClass,這只是一個疏忽。 我不知道如何在不知道事先知道的情況下進行演員表演。如果我知道我需要處理的課程,我不需要反思...... 感謝您的建議! – soc 2010-04-17 16:03:21
你可以使用類似'value match {case s:String =>/*對某個字符串做某事*/case _ =>/*執行其他操作* /}'來匹配對象。不知道我是否明白你想要做什麼。 – gerferra 2010-04-19 15:58:34