android琐事录

Posted 一介闲休

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android琐事录相关的知识,希望对你有一定的参考价值。

1.修改java类的final属性,使其可以继承

如:final class A

现在如果想让A能被B继承,注意A是第三方jar中的,你不能修改源码,此时可以这样处理:

Class aClass = A.class;
Class classClass = Class.class;
Field accessFlagsFiled = classClass.getDeclaredField("accessFlags");
accessFlagsFiled.setAccessible(true);
int accessFlags = (Integer) accessFlagsFiled.get(aClass);
accessFlags = accessFlags & (~Modifier.FINAL);
accessFlagsFiled.set(aClass, accessFlags);

2.如果想第三方@hide了A类怎么办,假设A又是系统类,但是B又要继承A,此时可以在本地创建个A,根据双亲委派模式原则,A是不会被访问到的,因为每次load A时都用的是系统A。

3.使用反射时,如果你现在有A中内部类B的实例,需要通过反射得到A对象,可以使用this.$0来获取

Field aField = bIns.getClass().getDeclaredField("this$0"); A a = aField.get(bIns);



以上是关于android琐事录的主要内容,如果未能解决你的问题,请参考以下文章

简单的跨平台琐事应用程序[关闭]

Android录屏命令Android录GifAndroid录视频

Android制作一个视频录制器

Android制作一个视频录制器

Android制作一个视频录制器

Android面试收集录16 Android动画总结