Erreur sur une méthode de saisie
Résolu
masema95
Messages postés
6
Statut
Membre
-
masema95 Messages postés 6 Statut Membre -
masema95 Messages postés 6 Statut Membre -
Bonsoir,
J'ai implémenter une méthode, et j'ai une exception qui est lancée à l'execution de celle-ci.
Voici mon code et quelques explications:
Donc jusqu'ici mon code fonctionne. Maintenant je veux appeler la méthode saisie() dans un autre méthode d'une autre classe (Vehicule) et c'est la que j'ai une erreur.
Ma classe Vehicule:
Et quand je compile, j'ai l'affichage suivant:
Je n'arrive pas à voir où est le problème. Si quelqu'un pouvait m'aider svp ce serait gentil
J'ai implémenter une méthode, et j'ai une exception qui est lancée à l'execution de celle-ci.
Voici mon code et quelques explications:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Immatriculation {
private static final String SEPARATEUR = "-";
protected String serie;
protected String code1, code2;
public Immatriculation (String immatriculation){
estSplittee(immatriculation);
}
public void estSplittee(String immatriculation){/*méthode qui permet à partir d'une chaine d'obtenir la plaque avec separateur*/
String [] tabSplit = immatriculation.split(SEPARATEUR);
ArrayList <String>arlSplit = new ArrayList<String>(Arrays.asList(tabSplit));
code1 = arlSplit.get(0);
serie = arlSplit.get(1);
code2 = arlSplit.get(2);
}
public void saisie(){
String s;/*string qui va être attribuée à chaque param*/
Scanner sc = new Scanner(System.in);
s = sc.next();
if (!s.contains(SEPARATEUR)){
System.err.println("Ce n'est pas un numero de plaque");
}
else estSplittee(s);
sc.close();
}
public static void main(String[]argvs){
Immatriculation immatriculation1 = new Immatriculation();
System.out.println(immatriculation1);
immatriculation1.saisie();
System.out.println(immatriculation1);
}
}
Donc jusqu'ici mon code fonctionne. Maintenant je veux appeler la méthode saisie() dans un autre méthode d'une autre classe (Vehicule) et c'est la que j'ai une erreur.
Ma classe Vehicule:
import java.util.Scanner;
/*un véhicule est identifié par sa plaque d'immatriculation*/
public class Vehicule {
protected Immatriculation plaque;
protected Type_Vehicule type;
public Vehicule(){}
public Vehicule(Immatriculation plaque, Type_Vehicule type){
this.plaque = plaque;
this.type = type;
}
public Immatriculation getPlaque(){
return plaque;
}
public Type_Vehicule getType(){
return type;
}
public void setPlaque(Immatriculation plaque){
this.plaque = plaque;
}
public void setType(Type_Vehicule type){
this.type = type;
}
public String toString(){
String ch = "";
ch+= "---Immatriculation : " + getPlaque();
ch+= "\n---Type : " + getType() ;
return ch;
}
public void saisie(){/*saisie du véhicule*/
System.out.println("Renseigner immatriculation");
getPlaque().saisie();
/*if(!immatriculationValide()){
while(!immatriculationValide()){
System.err.println("Plaque d'immatriculation invalide: réessayez");
plaque.saisie();
System.out.println("Saisie immatriculation ok");
}}*/
System.out.println("Renseigner type de vehicule");
choixType();
}
private void choixType() {
int choix;
System.out.println("1---MOTO");
System.out.println("2---VOITURE");
System.out.println("3---VELO");
System.out.println("4---CAMION");
System.out.println("5---HELICOPTERE");
System.out.println("Entrer le numéro correspondant: ");
Scanner sc = new Scanner(System.in);
choix = sc.nextInt();
switch(choix){
case 1: setType(Type_Vehicule.MOTO);break;
case 2: setType(Type_Vehicule.VOITURE);break;
case 3: setType(Type_Vehicule.VELO);break;
case 4: setType(Type_Vehicule.CAMION);break;
case 5: setType(Type_Vehicule.HELICOPTERE);break;
default: setType(Type_Vehicule.VOITURE);break;
}
}
public boolean immatriculationValide(){
/*
serie est un nombre de 3 lettre exactement
code1 et code 2 ne sont pas des nombre et sont de longueur 2 exactement
*/
return(plaque.estUnNombre(plaque.getSerie()) && !plaque.estUnNombre(plaque.getCode1()) && !plaque.estUnNombre(plaque.getCode2()) &&
plaque.getSerie().length()==3 && plaque.getCode1().length()==2 && plaque.getCode2().length()==2);
}
public static void main(String[] argvs){
Vehicule v = new Vehicule();
v.saisie();
System.out.println(v);
}
}
Et quand je compile, j'ai l'affichage suivant:
Renseigner immatriculation Exception in thread "main" java.lang.NullPointerException at Vehicule.saisie(Vehicule.java:40) at Vehicule.main(Vehicule.java:89)
Je n'arrive pas à voir où est le problème. Si quelqu'un pouvait m'aider svp ce serait gentil
A voir également:
- Erreur sur une méthode de saisie
- Comment saisir une adresse url - Guide
- Saisie vocale whatsapp - Accueil - Messagerie instantanée
- Saisie vocale sms - Guide
- Liste deroulante excel avec saisie semi-automatique - Guide
- Une erreur s'est produite instagram ✓ - Forum Instagram
Merci beaucoup pour le coup de main.