IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Lancer une méthode static au chargement de la classe


Sujet :

Langage Java

  1. #1
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut Lancer une méthode static au chargement de la classe
    Bonjour

    Imaginons une classe Personne qui permette d'instancier homme, femme, cousins[] ...
    J'aimerais que la classe ait un champ static qui pointe vers un bonhomme_baton de classe Personne.
    Mais je ne veux pas que toute fonction, utilisant la classe, fabrique son propre bonhomme_baton !
    J'aimerais que ce soit le même. Il faudrait qu'il soit créé au chargement de la classe.
    Ainsi, le pointeur serait fixé sur un objet instancié une bonne fois pour toute. (final ?)

    Est-ce possible ?
    Si oui, comment ?

    Merci de votre attention.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il suffit d'utiliser un champ static final.

    Attention à ce que ce soit bien thread-safe si l'object est modifiable...

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Merci

    Pardon. Question idiote.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Également les initialiseurs statiques qui peuvent être utiles si besoin d'un poil de logique lors de l'initialisation (et pour éviter de définir une méthode static uniquement pour ça)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
        public class Foobar {
            private static final List<Integer> DAYS_UNTIL_END_OF_MONTH; // exemple complètement idiot
     
            static { // <--- static initializer begins here
                List<Integer> daysComputed = new ArrayList<>(31);
     
                for(int i = LocalDate.now().getDayOfMonth(); i<=LocalDate.now().getMonth().length(false); i++) {
                    daysComputed.add(Integer.valueOf(i));
                }
     
                DAYS_UNTIL_END_OF_MONTH = Collections.unmodifiableList(daysComputed);
            }
     
        }
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lancer une méthode de la page parente
    Par kastor_lapon dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/05/2007, 17h15
  2. Accès à une méthode static
    Par demcoul dans le forum Langage
    Réponses: 3
    Dernier message: 22/03/2007, 17h55
  3. Réponses: 16
    Dernier message: 26/10/2006, 16h17
  4. une méthode static
    Par adilo dans le forum Langage
    Réponses: 5
    Dernier message: 23/06/2006, 21h10
  5. Lancer une méthode d'une classe Owner
    Par akabane dans le forum Delphi
    Réponses: 4
    Dernier message: 19/05/2006, 00h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo