java反射

2020-07-23  本文已影响0人  菜鸟何时起飞

1 获取反射对象的属性值

       val activityManagerClass = Class.forName("android.app.ActivityManager")
       //获取所有的属性 并标记为可以访问
        activityManagerClass.declaredFields.forEach {
             it.isAccessible = true
             Log.e("kangf", "field  == " + it.name)
         }
         val singletonField = activityManagerClass.getDeclaredField("IActivityManagerSingleton")
         singletonField.isAccessible = true
        //这里参数传递null 是因为IActivityManagerSingleton 是静态属性
         val singleton = singletonField.get(null)

         val singletonClass = Class.forName("android.util.Singleton")
         val mInstanceField = singletonClass.getDeclaredField("mInstance")
         mInstanceField.isAccessible = true
        //获取指定对象的属性值
         val mInstance = mInstanceField.get(singleton)
上一篇 下一篇

猜你喜欢

热点阅读