是否可以使用反射来访问对象的私有字段并在此字段上调用公共方法?
即
class Hello { private World word}class World { public BlaBlaBla foo()}Hello h = new Hello()World world = reflect on the h// And then world.foo()
解决方法:
可以使用反射访问私有字段.下面的例子(都写在Kotlin中)表明它……
使用Java反射:
val hello = Hello()val f = hello::class.java.getDeclaredFIEld("world")f.isAccessible = trueval w = f.get(hello) as Worldprintln(w.foo())
使用Kotlin反射:
val hello = Hello()val f = Hello::class.memberPropertIEs.find { it.name == "world" }f?.let { it.isAccessible = true val w = it.get(hello) as World println(w.foo())}
总结 以上是内存溢出为你收集整理的Java / Android / Kotlin:对私有Field的反思并在其上调用公共方法全部内容,希望文章能够帮你解决Java / Android / Kotlin:对私有Field的反思并在其上调用公共方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)