Kotlin与Java 的反射
我们可以使用 instance::class.java
、ClassName::class.java
或者 instance.javaClass
通过 java.lang.Class
来进入 Java 的反射类java.lang.Class
, 之后我们就可以使用Java中的反射的功能特性了。
代码示例:
@RunWith(JUnit4::class)
class RefectClassTest {
@Test fun testGetterSetter() {
val product = Product()
val pClz = product::class.java
println(pClz.canonicalName)
pClz.declaredFields.forEach { println(it) }
pClz.declaredMethods.forEach {
println(it.name);
it.parameters.forEach { println(it) }
}
}
}
运行上面的代码输出:
com.easy.kotlin.Product
java.lang.Long com.easy.kotlin.Product.id
java.lang.String com.easy.kotlin.Product.name
java.lang.String com.easy.kotlin.Product.category
java.util.Date com.easy.kotlin.Product.gmtCreated
java.util.Date com.easy.kotlin.Product.gmtModified
getName
setName
java.lang.String arg0
getId
setId
java.lang.Long arg0
setCategory
java.lang.String arg0
getGmtCreated
setGmtCreated
java.util.Date arg0
getGmtModified
setGmtModified
java.util.Date arg0
getCategory
当前内容版权归 JackChan1999 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 JackChan1999 .