私有最终静态变量名的Android编码指南

私有最终静态变量名的Android编码指南,android,coding-style,Android,Coding Style,所以我知道私人Var是以“s”开头的 private static int sSomeInt; 但是那些同样是最终版本的呢 我喜欢publicstaticfinal变量名在所有大写字母中,因为在我看来,我不能在所有大写字母中修改变量。对我来说,这两个人对我来说太像了,尽管他们本应该是不同的 private static int sMutableInt; private static final int sImmutableInt; 而且我不能从变量名本身的样式判断我不能重新分配sImmuta

所以我知道私人Var是以“s”开头的

private static int sSomeInt;
但是那些同样是最终版本的呢

我喜欢
publicstaticfinal
变量名在所有大写字母中,因为在我看来,我不能在所有大写字母中修改变量。对我来说,这两个人对我来说太像了,尽管他们本应该是不同的

private static int sMutableInt;
private static final int sImmutableInt;
而且我不能从变量名本身的样式判断我不能重新分配
sImmutableInt
(仅通过它的实际名称)

  • 安卓不在乎这些吗?(本节未提及)
  • 这种情况的常见做法是什么

  • 源代码通常
    对所有
    静态final
    数据成员(无论是公共的还是私有的)使用\u ALL \u CAPS\u和\u下划线

    源代码通常
    对所有
    静态final
    数据成员(无论是公共的还是私有的)使用\u ALL \u CAPS\u和\u下划线

    这基本上取决于Java代码Android源代码及其SDK使用常量的所有大写和下划线约定

    我猜Android遵循的是谷歌Java风格:

    关于你的问题:

    // Constants
    static final int NUMBER = 5;
    static final ImmutableList<String> NAMES = ImmutableList.of("Ed", "Ann");
    static final Joiner COMMA_JOINER = Joiner.on(',');  // because Joiner is immutable
    static final SomeMutableType[] EMPTY_ARRAY = {};
    enum SomeEnum { ENUM_CONSTANT }
    
    // Not constants
    static String nonFinal = "non-final";
    final String nonStatic = "non-static";
    static final Set<String> mutableCollection = new HashSet<String>();
    static final ImmutableSet<SomeMutableType> mutableElements = ImmutableSet.of(mutable);
    static final Logger logger = Logger.getLogger(MyClass.getName());
    static final String[] nonEmptyArray = {"these", "can", "change"};
    

    这基本上取决于您坚持的Java代码约定。Android源代码及其SDK对常量使用全大写和下划线约定

    我猜Android遵循的是谷歌Java风格:

    关于你的问题:

    // Constants
    static final int NUMBER = 5;
    static final ImmutableList<String> NAMES = ImmutableList.of("Ed", "Ann");
    static final Joiner COMMA_JOINER = Joiner.on(',');  // because Joiner is immutable
    static final SomeMutableType[] EMPTY_ARRAY = {};
    enum SomeEnum { ENUM_CONSTANT }
    
    // Not constants
    static String nonFinal = "non-final";
    final String nonStatic = "non-static";
    static final Set<String> mutableCollection = new HashSet<String>();
    static final ImmutableSet<SomeMutableType> mutableElements = ImmutableSet.of(mutable);
    static final Logger logger = Logger.getLogger(MyClass.getName());
    static final String[] nonEmptyArray = {"these", "can", "change"};
    

    你是否特别提到了对开源Android代码的更改,你可能会为此做出贡献?这是“规则”唯一适用的地方(而不是你可能开发的运行在Android上的应用程序).当然可以,但我还是愿意坚持这些建议来开发我自己的应用程序/代码。我想这会让我成为一个共产主义者,但我更喜欢标准化的编码。你是不是在专门谈论开源Android代码的变化,你可能会为此做出贡献?这是唯一适用“规则”的地方(不适用于你可能开发的运行在Android上的应用程序)。当然,但我还是希望对我自己的应用程序/代码坚持这些建议。我想这会让我成为一个共产主义者,但我更喜欢用下划线编码所有大写字母的标准化是针对公共静态最终常量。因此,原始问题中的情况将符合“规则”。(sImmutableInt)嗯,这似乎是正确的,而且更直观。出于好奇,你见过多少次?(超过30次?)@戴维特:次数多得数不清。欢迎您查看Android源代码,并查看使用中的这种模式,例如和。反过来看,我想不起来曾经看到过
    静态final
    没有使用
    大写和下划线的样式。@commonware很棒。我只是想确定一下。是的,我同意,这就是我看到的n还有很多android源代码。让这个答案不被接受一段时间,看看其他人是否有任何不同的有趣观点(因为这个问题有点主观)。所有带下划线的大写都是用于公共静态最终常量。因此,原始问题中的情况将与“规则”匹配。(sImmutableInt)嗯,这似乎是正确的,而且更直观。出于好奇,你见过多少次?(超过30次?)@戴维特:次数多得数不清。欢迎您查看Android源代码,并查看使用中的这种模式,例如和。反过来看,我想不起来曾经看到过
    静态final
    没有使用
    大写和下划线的样式。@commonware很棒。我只是想确定一下。是的,我同意,这就是我看到的n还有很多android源代码。让这个答案不被接受一段时间,看看其他人是否有不同的有趣观点(因为这个问题有点主观)