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 :

Charger une seule fois une classe serializable


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 61
    Points : 39
    Points
    39
    Par défaut Charger une seule fois une classe serializable
    Bonjour,
    J'ai quelques hashmap qui se trouvent dans une classe. Je dois enregistrer cette classe sur le disque pour stocker les key-valeurs qui sont dans les hashmap.

    Je voudrais que quand je lance l'application, elle relie la classe des hashmap sur le disque et la charger en mémoire. Ainsi, les méthodes d'autres classes peuvent accéder à cette classe et récupérer les valeurs dans les hashmap. Pour cela, il faut que je vérifie si la classe est chargée en mémoire avant que j'essaie y accéder.

    Je voudrais donc savoir comment vérifier si une classe est dans la mémoire afin d'éviter la recharger chaque fois. Cela est-il possible pour une classe qu'on a stocker sur le disque et comment (je pense que c'est la serialization, non?)

    Merci bien.
    vous êtes cool les gars

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Oui, c'est de la sérialisation.
    A l'initialisation de ton application, du construit tes objets à partir des fichiers. S'il n'y a pas d'erreur (au sens de ton applicatif) alors tu es sûr que les objets sont chargés.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 61
    Points : 39
    Points
    39
    Par défaut
    Merci pour la réponse,
    En fait, quand on lance l'application, on n'a pas toujours besoin de charger cette classe. Il y a que certains moments où on a besoin des données de ces hashmap et en plus dans différentes classes et méthodes. Du coup, je ne peux pas la charger en mémoire dès le lancement de l'application mais lors de la première demande d'accès. Vu que dans une méthode donnée, on sais pas si la classe était auparavant demandée, alors j'ai besoin vérifier son existence ne mémoire.

    Mais je ne sais pas comment le vérifier, ni comment accéder à l'instance de cette classe.
    Merci bien.

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Et bien il te suffit de mettre l'instance de ta classe de donnée dans un attribut statique et quand tu veux le récupérer via un getter s'il est null (non chargé) tu le charge.
    Un truc du genre :
    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
    16
    public final class StaticData {
     
        private static StaticData staticData;
        private Map<...> map;
     
        private StaticData() {}
     
        public static synchronized StaticData getStaticData() throws IOException {
            if(staticData == null) {
                // initialisation/désérialisation des données
            }
            return staticData;
        }
     
        ...
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/04/2013, 15h57
  2. Réponses: 6
    Dernier message: 02/11/2011, 09h34
  3. Compter une seule fois une donnée
    Par lodan dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/07/2007, 19h26
  4. rafraichir une page HTML une seul fois
    Par skillipo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/07/2007, 09h40
  5. Réponses: 9
    Dernier message: 26/04/2007, 00h44

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