Android-反射
本文最后更新于 77 天前,其中的信息可能已经有所发展或是发生改变。

getField不能获取private修饰(可以向父类查找) 当查找不到使用getDeclaredField(不能向父类查找),任然报错需要向父级查找(获取所有Field或Method通过name匹配查找)静态static方法执行无需传入对象实例

private fun getField(cls: Class<*>,str: String): Field? {
        var mCls:Class<*>? = cls
        try {
            return mCls?.getField(str)
        } catch (e: NoSuchFieldException) {
            while(true){
                try {
                    val field = mCls?.getDeclaredField(str)?.apply {
                        isAccessible = true
                    }
                    return field
                } catch (unused: NoSuchFieldException) {
                    e.printStackTrace()
                    mCls = mCls?.superclass
                    if(mCls == null) {
                        return null
                    }
                }
            }
        }
    }

遍历当前类所以属性、方法后去匹配目标属性和方法

InputQueue::class.java.methods.forEach {
	Log.d("dqs",">>>>>>>>>>>>> ${it}")
}
ac::class.java.superclass.fields.forEach {
	Log.d("dqs",">>>>>>>>>>>>> field: ${it}")
}
本文链接:https://iichen.cn/?p=835
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇