MaDKit forum

Welcome All !
Please, use explicit topic names when creating new threads. Thanks.

You are not logged in.

#1 2011-11-26 14:19:31

SimonHV
Member
Registered: 2011-11-26
Posts: 4

Récupérer la valeur d'un attribut dans une classe héritant de Turtle

Bonjour,

j'ai un petit problème qui doit être assez bête à résoudre mais je ne sais pas pourquoi je bloque dessus.

Dans notre fichier XML, nous avons la ligne suivante :
<turtle class="edu.turtlekit2.demos.comportement.Cooperatif" number="5"/>

La classe Cooperatif hérite de Turtle, et dans cette classe nous aimerions récupérer la valeur de number (en l'occurrence 5).
Je sais qu'il existe le code suivant pour récupérer la valeur d'un attribut :
int x = this.getAttrib().getInt("number");   

Sauf qu'on ne peut l'utiliser que dans les classes héritant de Observer, donc comment faire pour récupérer la valeur d'un attribut dans une classe héritant de Turtle ?

Merci de votre réponse !

Offline

#2 2011-11-26 15:23:43

fmichel
Administrator
From: Montpellier
Registered: 2009-03-24
Posts: 172
Website

Re: Récupérer la valeur d'un attribut dans une classe héritant de Turtle

Bonjour,

En fait la méthode équivalente pour la classe Turtle a un nom un peu différent : getAttributes()
donc getAttributes().getInt("number"); devrait faire l'affaire.

Offline

#3 2011-11-26 16:35:00

SimonHV
Member
Registered: 2011-11-26
Posts: 4

Re: Récupérer la valeur d'un attribut dans une classe héritant de Turtle

Merci de votre réponse. Or quand je fais ce que vous m'avez dit, j'obtiens une erreur de type NullPointerException:

Initialisation problem: {class=edu.turtlekit2.demos.comportement.Cooperatif, number=5}
java.lang.NullPointerException
java.lang.NullPointerException
    at edu.turtlekit2.demos.comportement.Cooperatif.<init>(Cooperatif.java:15)

Offline

#4 2011-11-26 17:47:18

fmichel
Administrator
From: Montpellier
Registered: 2009-03-24
Posts: 172
Website

Re: Récupérer la valeur d'un attribut dans une classe héritant de Turtle

Cela vient du fait que l'utilisation de cette méthode n'est pas possible dans le cronstructeur (il faut que la Turtle soit intégrée au noyau) : il faut l'utiliser dans setupUp() par exemple.
Un exemple d'utilisation se trouve dans edu.turtlekit2.demos.gas.Gas

Offline

#5 2011-11-26 19:42:56

SimonHV
Member
Registered: 2011-11-26
Posts: 4

Re: Récupérer la valeur d'un attribut dans une classe héritant de Turtle

Merci de votre réponse, ça fonctionne parfaitement !

Offline

Board footer