Wat is een redelijke volgorde van Java-modifiers?
- samenvatting
- finale
- inheems
- privé
- beschermd
- openbaar
- statisch
- strictfp
- gesynchroniseerd
- van voorbijgaande aard
- vluchtig
Bijwerken
Ik heb de formulering gewijzigd van aanbevolenin redelijkom de discussies te kalmeren of de bestelling wordt aanbevolen of niet.
Antwoord 1, autoriteit 100%
De gebruikelijkegebruiksvolgorde van de modifiers wordt vermeld in de Java-taalspecificatie(en niet de Java Virtual Machine-specificatie), bijv. voor klasse-modifiersvindt u de volgende definitie (uittreksel):
ClassModifiers: ClassModifier ClassModifiers ClassModifier ClassModifier: one of Annotation public protected private abstract static final strictfp
[….]
Als er twee of meer (verschillende) class modifiers voorkomen in een class-declaratie, dan is het gebruikelijk, maar niet verplicht, dat ze verschijnen in de volgorde die overeenkomt met die hierboven getoond in de productie voor ClassModifier. (kleine tekst onderaan de alinea!)
Je vindt deze zin op verschillende andere plaatsen waar het gebruik van modifiers is gespecificeerd, b.v. hiervoor veld modificaties.
Update: ik heb “opgegeven/aanbevolen” vervangen door “gebruikelijk” om dit een acceptabel antwoord te maken. Houd hier rekening mee als je de opmerkingen leest 😉 (bedankt @EJP om dit duidelijk te maken) – Toch ikzou aanbevelenom de gebruikelijkebestellen.
Google raadt ook aande gebruikelijke volgorde te gebruiken vermeld in de Java-specificatie.
public / protected / private
abstract
static
final
transient
volatile
synchronized
native
strictfp
Update: er is een nieuwe “Java Style Guidelines“-initiatief voor projecten in de OpenJDK-gemeenschap. Het heeft ook een aanbeveling voor een modificatiebestellingen bevat ook de nieuwe standaardmodifier van Java 8.
public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp
Antwoord 2, autoriteit 21%
Het is redelijk om de volgorde te gebruiken volgens de Specificatie van Java Virtual Machine, Tabel 4.4
- openbaar
- beschermd
- privé
- samenvatting
- standaard
- statisch
- finale
- van voorbijgaande aard
- vluchtig
- gesynchroniseerd
- inheems
- strictfp
Antwoord 3, autoriteit 5%
Op basis van hun int-waarden.
Modificatie (Java Platform SE 8)
- 1 : openbaar
- 2 : privé
- 4 : beveiligd
- 8 : statisch
- 16 : finale
- 32 : gesynchroniseerd
- 64 : vluchtig
- 128 : voorbijgaand
- 256 : native
512: interface- 1024 : samenvatting
- 2048: strictfp
Antwoord 4
Ik gebruik twee regels om de volgorde van de modificaties te onthouden, maar bevat niet de strictfp, omdat deze nooit door mij wordt gebruikt. Ter info.
-
gesynchroniseerde native hebben mensen met de minste prioriteit.
-
PPP AS FTV: PPP {noise sound} AS {watching} FTV {France TV}.
🙂