web-dev-qa-db-fra.com

Différence entre finale statique et finale statique

J'ai trouvé un code où il a déclaré le code comme

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";

Quelle est la différence entre eux ou sont-ils les mêmes? Ou est-ce différent pour private ou public?

137
MBMJ

Aucune différence du tout. Selon 8.3.1 - Classes - Modificateurs de champ de Java ,

Si deux ou plusieurs modificateurs de champ (distincts) apparaissent dans une déclaration de champ, il est d'usage, bien que cela ne soit pas obligatoire, qu'ils apparaissent dans l'ordre conforme à celui indiqué ci-dessus dans la production de FieldModifier.

Pour les champs, ladite production liste les modificateurs dans cet ordre:

@Annotationpublicprotectedprivatestaticfinaltransientvolatile

Et pour les méthodes:

@Annotationpublicprotectedprivateabstractstaticfinalsynchronizednativestrictfp

204
Gergely Szilagyi

Ce sont les mêmes. L'ordre des modificateurs n'est pas significatif. Et notez que la même règle s'applique dans les contextes all où les modificateurs sont utilisés en Java.

Cependant, la plupart des Java recommandent/prescrivent le même ordre spécifique pour les modificateurs. Dans ce cas, il s'agit de 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";

même tous les points précédents sont identiques, la position des trois premiers est interchangeable.

18
RTA

Ils sont pareils,

private final static String API_RTN_ERROR = "1";

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

Quelle est la différence entre eux ou sont-ils les mêmes?

Si vous parlez de changer l'ordre des statiques et des finales, alors oui, elles sont identiques.

est-ce différent pour privé ou public?

Non, vous pouvez utiliser n'importe quel ordre en privé et en public. La seule différence est que les variables privées ne seront pas directement accessibles en dehors de la classe.

4
Harry Joy

c'est pareil, bien sûr. cela dépend seulement de vos habitudes et de vos préférences :-). J'utilise aussi l'ordre final public statique pour les membres et les méthodes

0
pietroSV