[JAVA] nullPointerException
apprentiSorcier1
Messages postés
2
Statut
Membre
-
apprentiSorcier1 Messages postés 2 Statut Membre -
apprentiSorcier1 Messages postés 2 Statut Membre -
Bonjour,
j'essaie de tester une classe qui gère une liste de maillons chaînés symétriques qui contiennent un objet de type générique (avec l'aide d'un élément courant) et j'obtiens toujours une exception due à un pointeur vide. En fait, cette exception est censée être bloquée par le fait que l'élément courant n'existe pas. Toutefois, l'exception est levée à la ligne du "return m.info();"
Descriptif des méthodes utilisées à l'intérieur de la méthode problème:
new MaillonSymetrique( MaillonSymetrique<T> precedent, element, MaillonSymetrique<T> suivant ) ---> Crée un objet de type générique qui pointe vers les objets précédent et suivant.
courantEstDefini() ---> Retourne TRUE si l'élément courant a été défini
info() ---> Retourne l'objet element du MaillonSymetrique<T> en question
Voici donc la méthode problème,
/**
* Retourne la valeur de l'élément courant s'il est défini.
* @return la valeur de l'élément courant.
* @throws NoSuchElementException si l'élément courant n'est pas défini.
*/
public T valeurElementCourant () throws NoSuchElementException{
MaillonSymetrique<T> m = new MaillonSymetrique( null, null, null );
if( !courantEstDefini() )
{
throw new NoSuchElementException( messageErreur );
}
else
{
m = elementCourant;
}
return m.info();
}
j'essaie de tester une classe qui gère une liste de maillons chaînés symétriques qui contiennent un objet de type générique (avec l'aide d'un élément courant) et j'obtiens toujours une exception due à un pointeur vide. En fait, cette exception est censée être bloquée par le fait que l'élément courant n'existe pas. Toutefois, l'exception est levée à la ligne du "return m.info();"
Descriptif des méthodes utilisées à l'intérieur de la méthode problème:
new MaillonSymetrique( MaillonSymetrique<T> precedent, element, MaillonSymetrique<T> suivant ) ---> Crée un objet de type générique qui pointe vers les objets précédent et suivant.
courantEstDefini() ---> Retourne TRUE si l'élément courant a été défini
info() ---> Retourne l'objet element du MaillonSymetrique<T> en question
Voici donc la méthode problème,
/**
* Retourne la valeur de l'élément courant s'il est défini.
* @return la valeur de l'élément courant.
* @throws NoSuchElementException si l'élément courant n'est pas défini.
*/
public T valeurElementCourant () throws NoSuchElementException{
MaillonSymetrique<T> m = new MaillonSymetrique( null, null, null );
if( !courantEstDefini() )
{
throw new NoSuchElementException( messageErreur );
}
else
{
m = elementCourant;
}
return m.info();
}
A voir également:
- [JAVA] nullPointerException
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
2 réponses
Salut,
Tu peux, dans un premier temps, mettre ton message d'erreur dans m et agir en fonction de ce qui est retourné.
Cordialement,
Dan
Tu peux, dans un premier temps, mettre ton message d'erreur dans m et agir en fonction de ce qui est retourné.
Cordialement,
Dan
Je ne vois qu'une seule raison pour que ça plante ici, c'est que elementCourant vaut null, ce qui signifierai alors que courantEstDefini() ne fonctionne pas correctement, puisqu'elle aurait du renvoyer false lors de son appel.
Remarque : l'initialisation de m avec ton new(null,null,null) est totalement abject, cela
créé un objet en mémoire qui ne sera jamais utilisé !
Remarque : l'initialisation de m avec ton new(null,null,null) est totalement abject, cela
créé un objet en mémoire qui ne sera jamais utilisé !
public boolean courantEstDefini()
{
return elementCourant!=null;
}
public T valeurElementCourant() throws NoSuchElementException
{
if (courantEstDefini())
return elementCourant.info();
else
throw new NoSuchElementException(messageErreur);
}