JavaAndroidKotlin:对私有Field的反思并在其上调用公共方法

JavaAndroidKotlin:对私有Field的反思并在其上调用公共方法,第1张

概述是否可以使用反射来访问对象的私有字段并在此字段上调用公共方法?即classHello{privateWorldword}classWorld{publicBlaBlaBlafoo()}Helloh=newHello()Worldworld=reflectontheh//Andthenworld.foo()解决方法:可以使用反射访问私有

是否可以使用反射来访问对象的私有字段并在此字段上调用公共方法?

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的反思并在其上调用公共方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存