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 :

problème executable - classe interne


Sujet :

Langage Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut problème executable - classe interne
    Bonjour,

    je suis étudiant et relativement débutant en java. J'ai un projet pour mes études et je bloque...
    J'ai un problème dans mon code java au moment de faire mon executable :

    J'ai une "super-classe" construite de la façon suivante : (tableau d'éléments de sa classe interne , int , String).
    Et ma classe interne est construite comme cela : (tableau de roues, int);

    Or dans mon exécutable, je n'arrive pas à créer mon 1er tableau d'élements de classe interne ...
    Je ne sais pas si j'ai réussi à être clair, mais voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class RobotKenshu extends Robot{
    public RobotKenshu(Robot r, CrawlerChassis[] c)throws NotTheRightLengthException, RelationshipException{...}
     
    }
    class CrawlerChassis{
    public CrawlerChassis(Wheel[] w, int serNumCraw, String typeCraw){...}
    et lorsque dans mon exécutable je veux créer mon tableau de CrawlerChassis, eclipse me donne le message d'erreur suivant : "CrawlerChassis cannot be resolved to a typ"

    Si vous pouviez m'aider, ça serait top !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    CrawlerChassis doit être déclaré dans RobotKenshu et pas après.

    Bien que le language autorise de créer plusieurs classes séparées dans le même .java, ça n'a que peu d'intéret puisque les classes qui ne portent pas le même nom que le fichier .java ne peuvent pas être publiques, donc pas visibles donc inutile en dehors de la classe nominale du .java, donc en fait sans aucune raison de se trouver hors de cette classe nominale.

    Donc pour résumer, écrire

    A.java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class A {
       public class B {
     
       }
     
    }
    ou
    A.java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class A {
       public static class B {
     
       }
     
    }
    et non pas
    A.java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class A {
     
    }
    class B {
     
    }

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour votre réponse, c'est effectivement ce que j'avais fait, désolé je m'étais trompé dans mon message précédent. Mais malgré celà, je n'arrive pas à faire appel à ma classe interne CrawlerChassis ...
    Avez-vous une idée pourquoi ?

    Merci,
    Victor

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ce qui serait bien, ce serait que tu nous donne ton code complet, pas juste des bouts, ainsi que ton message d'erreur exact et les chemins où se trouvent tes différents fichiers.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Mon workspace est trop volumineux, même si je le compresse ...

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce n'est pas le code complet de ton application, mais la ou les classes concernées, avec les méthodes concernées surtout. En gros, tu extrais le code en un snippet qui démontre ton problème : ça suffira.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par firdionv Voir le message
    Mon workspace est trop volumineux, même si je le compresse ...
    on a juste besoin du .java qui pose problème et du message d'erreur exact.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    c'est bon j'ai trouvé, j'avais oublié une } ...
    Merci beaucoup !

    Autre question : Je n'arrive pas à faire des tests JUnit.
    Voilà une de mes classes, pouvez-vous me dire comment réaliser un test svp ?

    Merci
    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    package firdion_hurter_projet2;
     
    import java.io.PrintStream;
     
    public class RobotKenshu extends Robot{
     
    	private CrawlerChassis[] crawChassis;
     
      public RobotKenshu(Robot r, CrawlerChassis[] c)throws NotTheRightLengthException, RelationshipException{
     
        super(r.getReferenceRobot(), r.getNameRobot(), r.getPositionRobot(), r.getSpeedRobot(), r.getAngleMaxRobot(), 
          r.getRecordersReference(), r.getRadioModule().getSerialNumberModule(), 
          r.getSerialPort().getSerialPortNumber(), 
          r.getSerialPort().getTypePort());
     
        crawChassis=new CrawlerChassis[1];
     
        if(c.length==1){
    		  for(int i=0;i<2;i++){
    			  crawChassis[i]=c[i];
    		  }
    	  }
    	  else{
    		  throw new NotTheRightLengthException();
    		  }
      }
     
      public void progress(double distance){
     
        super.progress(distance);
        System.out.println("I slip");
      }
     
      public void stop(){
    	  super.stop();
      }
     
      public class CrawlerChassis{
     
        private Wheel[] wheels;
        private int serialNumberCrawler;
        private String typeCrawler;
     
        public CrawlerChassis(Wheel[] w, int serNumCraw, String typeCraw){
          this.wheels = new Wheel[3];
          this.serialNumberCrawler = serNumCraw;
          this.typeCrawler = typeCraw;
          int i;
          if (w.length == 3) {
            for (i = 0; i < 3; i++)
              this.wheels[i] = w[i];
          }
          else
            try
            {
              throw new NotTheRightLengthException();
            } catch (NotTheRightLengthException e) {
              e.printStackTrace();
            }
        }
     
        public Wheel[] getWheels(){
     
          return this.wheels;
        }
     
        public void setWheels(Wheel[] wheels) {
          this.wheels = wheels;
        }
     
        public int getSerialNumberCrawler() {
          return this.serialNumberCrawler;
        }
     
        public void setSerialNumberCrawler(int serialNumberCrawler) {
          this.serialNumberCrawler = serialNumberCrawler;
        }
     
        public String getTypeCrawler() {
          return this.typeCrawler;
        }
     
        public void setTypeCrawler(String typeCrawler) {
          this.typeCrawler = typeCrawler;
        }
     
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    package firdion_hurter_projet2;
     
    public class NotTheRightLengthException extends Exception
    {
      private static final long serialVersionUID = 1L;
     
      public NotTheRightLengthException()
      {
        super("Your Array doesn't have the right length");
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    package firdion_hurter_projet2;
     
    public class RelationshipException extends Exception
    {
      private static final long serialVersionUID = 1L;
     
      public RelationshipException()
      {
        super("You need at least one object which is connected to this class!");
      }
    }
    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
    package firdion_hurter_projet2;
     
    public class Wheel
    {
    	private int serialNumberWheel;
    	private String typeWheel;
     
    	public Wheel(int sNW, String tW){
    		serialNumberWheel=sNW;
    		typeWheel=tW;
    	}
     
    		public int getSerialNumberWheel()
    		{
    			return this.serialNumberWheel;
    		}
     
    		public void setSerialNumberWheel(int serialNumberWheel)
    		{
    			this.serialNumberWheel = serialNumberWheel;
    		}
     
    		public String getTypeWheel()
    		{
    			return this.typeWheel;
    		}
     
    		public void setTypeWheel(String tr)
    		{
    			this.typeWheel = tr;
    		}
    	}

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si tu es dans un IDE, le plus simple c'est bouton droit sur la classe ou la méthode => new Junit testcase

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oui mais faire cela, ca génère la structure du test mais pas le test en lui même non ?

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ca te crée un méthode test vide d'exemple. A toi de la remplir et en ajouter d'autres

Discussions similaires

  1. Problème avec classLoader et classe interne
    Par croquette06 dans le forum Langage
    Réponses: 2
    Dernier message: 30/12/2012, 00h01
  2. Un Thread en tant que classe interne, problème de synchro?
    Par gagou7 dans le forum Général Java
    Réponses: 10
    Dernier message: 19/01/2012, 08h30
  3. [Tomcat 6] Problème de chargement d'une classe interne
    Par SimOOn dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 08/09/2008, 16h31
  4. Problème execution 500 Internal Server Error
    Par alicom86 dans le forum Forms
    Réponses: 0
    Dernier message: 05/08/2007, 01h09
  5. Problème d'accés et classe interne.
    Par Pragmateek dans le forum C++
    Réponses: 8
    Dernier message: 14/08/2006, 13h34

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