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

avec Java Discussion :

Problème contructeur ArrayList


Sujet :

avec Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 59
    Par défaut Problème contructeur ArrayList
    Bonjour tous le monde,

    Je suis novice en java. Je suis entrain de faire un exercice. Je n'arrive pas débloquer une situation pour suivre les étapes suivantes. Je n'arrive pas créer un constructeur avec un arrayList. Pouvez vous me dire où se trouve ma faute ? Je vous remercie d'avance.

    Tuba uba
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    import java.util.*;
    import java.lang.*;
     
    public class Media{
        private  String titre;
        private  String support;
        public  int nbExemplaire;
     
        public Media(String titre, String support){
    	this.titre = titre;
    	this.support = support;
        }
     
        public String getTitre(){
    	return this.titre;
        }
     
        public String getSupport(){
    	return this.support;
        }
     
        public int getNbExemplaire(){
    	return this.nbExemplaire;
        }
     
        public void affichage(){
    	System.out.println(getTitre()+"("+getSupport()+")"+"x"+getNbExemplaire());
        }
     
     
        public boolean estEgale(Media el){
    	boolean etat = false;
    	if(el.titre == this.titre && el.support == this.support){
    	    etat = true;
    	}
     
    	return etat;
        }
     
     
    }
     
     
     
     
     
     
     
     
    public class Mediatheque extends Media {
        private ArrayList <Media> contenue;
     
     
        public Mediatheque( ArrayList <Media> contenue){
    	this.contenue = new ArrayList<Media>();
        }
     
        public void ajoute(Media el){
    	for(int i = 0; i<contenue.size();i++){
    	    if(contenue.equals(el)){
    		el.nbExemplaire ++;
    	    }
    	    else{
    		contenue.add( el);
    	    }
    	}
        }
     
    }

    erreur :
    Mediatheque.java:9: error: constructor Media in class Media cannot be applied to given types;
        public Mediatheque( ArrayList <Media> contenue){
                                                       ^
      required: String,String
      found:    no arguments
      reason: actual and formal argument lists differ in length
    1 error

  2. #2
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par tuba uba Voir le message
    Bonjour tous le monde,

    Je suis novice en java. Je suis entrain de faire un exercice. Je n'arrive pas débloquer une situation pour suivre les étapes suivantes. Je n'arrive pas créer un constructeur avec un arrayList. Pouvez vous me dire où se trouve ma faute ? Je vous remercie d'avance.

    Tuba uba
    [CODE]
    Bonjour,

    Première question : une Médiathèque est-elle un Média ? Autrement dit, pourquoi dériver la classe Mediatheque de la classe Media ??
    D'autant que cela entraîne le problème soulevé, sans rapport avec un ArrayList.

    La classe Media définit un constructeur avec 2 arguments, de ce fait Java ne crée pas de constructeur par défaut sans arguments.
    La classe Mediatheque définit un constructeur avec un autre argument, qui est une liste de Media.

    La seule utilisation que je vois pour ce type d'héritage est le pattern Composite, qui ici serait valable si une Médiathèque était un Média. Mais ça ne semble pas le cas d'après le source fourni.
    https://fr.wikipedia.org/wiki/Compos...de_conception)


    La première chose à faire me semble donc de supprimer cet héritage entre Mediatheque et Media. La compilation devrait mieux se passer.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 59
    Par défaut
    Bonjour tous le monde,

    Après avoir résolu le problème. J'ai voulu test le programme. Il m'affiche des erreurs. Pouvez-vous me dire où se situe mes erreurs. Je vous remercie d'avance. Il m'indique que, je pointe sur un espace vide. Je n'arrive pas trouver mon erreur.

    Voici le code:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import java.util.*;
    import java.lang.*;
    public class Media{
        private String titre;
        private  int numeroLivre = 0;
        private static int numeroLivre1 = 0;
     
        public Media(String titre, int numeroLivre){
    	this.titre = titre;
    	this.numeroLivre = numeroLivre;
    	this.numeroLivre1 ++;
        }
     
        public int getNumero(){
    	return this.numeroLivre;
        }
     
        public static  int getNumero1(){
    	return numeroLivre1;
        }
     
        public String toString(){
    	return this.titre+ "et" + String.valueOf(this.numeroLivre);
        }
     
        public boolean plusPetit(Media doc){
    	boolean valeur = false ;
    	if(this.numeroLivre < (doc.numeroLivre)){
    	    valeur = true;
    	}
     
    	return valeur;
        }
    }
     
     
    public class Mediatheque{
        private ArrayList<Media> maListe;
     
     
        public Mediatheque(){
    	ArrayList<Media>maliste = new ArrayList<Media>();
        }
     
        public String toString1(){
    	String resultat = "";
    	for (Media valeur : maListe){
    	    resultat += valeur.toString();
    	}
    	return resultat;
        }
     
        //////////////////////////////////////////////////////
     
        public void ajouter(Media doc){
    	this.maListe.add(doc);
     
        }
     
        //////////////////////////////////////////////////////
     
        public void plusPetit(){
     
    	Collections.sort(maListe, new Comparator<Media>()
    	    {
    		public int compare(Media s1, Media s2){
     
    		    return Integer.valueOf(s1.getNumero()).compareTo(s2.getNumero());
    		}
    	    });
        }
    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
    17
    18
    import java.util.*;
    import java.lang.*;
     
     
    public class Test{
        public static void main(String[] args){
     
    	Media test1 = new Media("Bonsoir", 123);
    	Media test2 = new Media("Bonne nuit",124);
    	Media test3 = new Media("Bonne apres midi", 125);
    	Mediatheque valeur1 = new Mediatheque();
     
    	valeur1.ajouter(test1);
     
        }
     
     
    }
    Mon erreur :
    Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.ArrayList.add(Object)" because "this.maListe" is null
    at Mediatheque.ajouter(Mediatheque.java:24)
    at Test.main(Test.java:13)

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Le problème vient du fait que dans le constructeur tu définis une variable locale maliste, alors que toi tu veux surement utilisé la variable de la classe maListe

    Et donc tu finis par te retrouver avec un nullpointeur car maListe n'est jamais initialisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class {
    ...
    private ArrayList<Media> maListe;
     
     
        public Mediatheque(){
    	ArrayList<Media>maliste = new ArrayList<Media>();
        }
    ...
    }
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2021
    Messages : 59
    Par défaut
    Ok merci beaucoup c'est bête comme faute. Merci beaucoup vous m'avez épargné beaucoup du temps

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

Discussions similaires

  1. Problème avec ArrayList
    Par yarf dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 03/07/2007, 10h50
  2. problème avec ArrayList et JVM
    Par ulysse031 dans le forum Collection et Stream
    Réponses: 29
    Dernier message: 26/04/2007, 20h47
  3. problème avec arraylist
    Par ulysse031 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 27/02/2007, 12h00
  4. [débutant] problème avec arraylist
    Par sissi25 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/12/2006, 16h01
  5. Problème avec ArrayList <String>
    Par fiphi dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 29/08/2006, 09h30

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