ActivityThread类的源码显示,它是一个final
类,这个类中的所有方法也是final
方法。作为java中的final
关键字定义,这个类是不能被继承的,为什么android开发者保留了这些方法final
?
可能是我没有表达清楚,我在这里修正一下。
ActivityThread是一个final
类,它不会有任何子类,也不会重写任何方法,但是你知道这个类中的所有方法都是final
,我想知道他们为什么需要这些 final
关键字,他们可以删除它们而不会产生任何影响。
最佳答案
Java Language Specification明确表示 final
类的任何方法都不能被覆盖。因此,方法上的 final
声明似乎是多余的。 (当 ActivityThread 可能不是最终类时,可能是 Android API 测试版遗留下来的?)
另一方面,优化器和混淆器有时可以对声明为 final
的方法做更多的事情。尽管他们应该足够聪明,可以推断出最终类不会有任何重写的方法,但给他们额外的提示也无妨。
关于java - 关于 ActivityThread 中使用的 final 关键字的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4824585/