采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,您好。反射比较消耗性能,那为什么Android要通过反射的形式去构建View?而不是直接new对象?例如:TextView tv=new TextView(context); 另外,这两种方式去构建,哪一种更加消耗性能呢?
同学你好,提问这个问题说明你认真思考源码了。为什么Android要通过反射的形式去构建View?而不是直接new对象?这是因为如果是反射的话我只需要写一行反射的代码即可适配所有的类型,直接new对象的需要对每一个类型都new。而有些是自定义的类型系统更是不可能在源码中new出来。
下一个问题,肯定是反射更加消耗性能,new 是正常的创建对象。
老师,您说: 反射的话我只需要写一行反射的代码即可适配所有的类型。 这句话理解不了, 所有类型是指哪些类型? 直接new对象的需要对每一个类型都new。 同理,可能因为上一句没搞懂,这句话也就无从理解了。
你好哈,你可以看下LayoutInflater这个类的createView方法,里面就是反射创建的View: final View view = constructor.newInstance(args); 你看这里就是一行反射直接适配所有不同的View的子类比如Button、CheckBox等所有的类型就是指:不同的View的子类。 你想如果不是反射创建的对象,那只能通过new对象的方式了,那是不是需要具体显示的写每一个View对象的创建代码 new Button、new CheckBox。 不清楚的话继续追问哈,遇到不懂的问题就需要你这样锲而不舍的精神!加油
登录后可查看更多问答,登录/注册
由表及里学到国内Top团队对性能问题的体系化解决方案
1.4k 38
1.2k 12
1.4k 9
1.3k 9
1.0k 9