1
如何在不使用universe.typeOf [T]獲取成員的情況下通過scala反射api調用setter方法,而是從xml文件中讀取類名。scala reflection without typeOf
我加了個例子。
class Person
class Student(val name: String, val parent: Person){
var node: String = _
}
<beans>
<bean id="person" class="com.test.Person"/>
<bean id="student" class="com.test.Student">
<constructor signature="this(String,Person)">
<arg value="Test name"/>
<arg ref-val="person"/>
</constructor>
<property name="note" ref-val="Some note"/>
</bean>
</beans>
這是我得到的字段
val classMirror = ru.runtimeMirror(getClass().getClassLoader())
.classSymbol(Class.forName(className))
classMirror.asType.toType.members.filter {
item =>
!item.isMethod && item.isTerm
}
然後我得到的制定者從外地
field.asMethod.setter
我不是舒爾如何調用setter方法的適用,如果有可能的。另外我不舒服我是否以正確的方式獲得身份證。
只是想了解您:您有一個帶setter方法的類。類名不爲人知,但在XML文件(?)中找到。你想獲得課程並調用setter方法? –
你在找那個類的一個實例嗎?因爲你提到了一個「二傳手」。或者我們在這裏談論一個構造函數? :) – fresskoma
我編輯過的問題。是的,我想創建該類的對象並填充它。是的,和setter(scala setter)和構造函數。你關於構造函數的問題給了我想法,也許嘗試從實例而不是從類中獲取字段。 – zlaja