java - 关于 ActivityThread 中使用的 final 关键字的混淆

标签 java android final

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/

相关文章:

java - 如何从 main() 访问字符串数组的元素

android - 如何在滚动时更改图像大小视角?

android - 修复了android布局中的页脚

Java - 如何插入最终列表

java - 找不到速度模板资源

java - 如何在 Swing 中将 DisplayJAI 图像绘制到容器?我想在PaintComponent方法中使用graphics2d将DisplayJAI绘制到Jpanel

java - 用于 Junit 测试的 ArrayList 具有零个和两个结果

java - 泄露并发布 YouTubeThumbnailLoaders

java - 为什么 Java 中的 Switch 语句可以包含 FINAL 变量作为 CASE?

java - final 是否静态重要吗?