是否在互联网上进行了一些搜索,却找不到简单的答案。我的问题所在是在Android Framework中使用Java,但是我认为这也是标准的Java行为。我了解finalprivate的定义,它们都用于变量访问和修饰符。当说明要求我将变量初始化为final private变量时,我正在关注一些代码和教程。以前没有看过,我改了一个private final变量。后来,代码要求我在构造函数中初始化变量,显然它对private final变量失败,因为它是不可变的。但是,当我将变量更改为final private ...时,它并没有失败,这引起了我的兴趣。有谁知道为什么会这样?

感谢您的回复!

最佳答案

Java语言规范的8.3.1. Field Modifiers部分说:

FieldModifier:
  (one of)
  Annotation public protected private
  static final transient volatile
如果在字段声明中出现两个或多个(不同的)字段修饰符,则它是惯用的,尽管不需要,但它们以的顺序出现,与FieldModifier生产中的上面显示的顺序一致。

这意味着private final是首选样式,但与final private完全相同。

07-24 09:39
查看更多