web-dev-qa-db-ja.com

最終静的と静的最終の違い

次のようなコードを宣言したコードを見つけました

private final static String API_RTN_SUCCESS = "0";
private final static String API_RTN_ERROR = "1";

public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config";
public static final String STARTUP_SETTING_KEY = "startup_setting";

それらの違いは何ですか、または同じですか?または、privateまたはpublicで異なりますか?

137
MBMJ

まったく違いはありません。 8.3.1-クラス-Java言語仕様のフィールド修飾子

2つ以上の(個別の)フィールド修飾子がフィールド宣言に現れる場合、必須ではありませんが、FieldModifierのプロダクションで上記に示した順序と一貫した順序で現れることが慣例です。

フィールドの場合、上記のプロダクションは次の順序で修飾子をリストします。

@Annotationpublicprotectedprivatestaticfinaltransientvolatile

メソッドの場合:

@Annotationpublicprotectedprivateabstractstaticfinalsynchronizednativestrictfp

204

それらは同じです。修飾子の順序は重要ではありません。また、Javaで修飾子が使用されるallコンテキストでも同じルールが適用されることに注意してください。

ただし、ほとんどのJavaスタイルガイドは、修飾子に対して同じ特定の順序を推奨/義務付けています。この場合、public static finalです。

37
Stephen C
private static final String API_RTN_ERROR= "1";
private final static String API_RTN_ERROR= "1";
static private final String API_RTN_ERROR= "1";
static final private String API_RTN_ERROR= "1";
final static private String API_RTN_ERROR= "1";
final private static String API_RTN_ERROR= "1";

上記のすべてが同じでも、最初の3つの位置は交換可能です。

18
RTA

彼らは同じです

private final static String API_RTN_ERROR = "1";

private static final String API_RTN_ERROR= "1";
8
Jigar Joshi

それらの違いは何ですか、または同じですか?

静的および最終の順序の変更について話している場合、はい、それらは同じです。

プライベートとパブリックで違いますか?

いいえ、プライベートおよびパブリックで任意の順序を使用できます。違いは、プライベート変数はクラスの外部から直接アクセスできないことです。

4
Harry Joy

もちろん同じです。それはあなたの習慣と好みに依存するだけです:-)。メンバーとメソッドにも公開静的最終順序を使用します

0
pietroSV