debutant,probléme ArrayList - Java - Programmation
Marsh Posté le 29-03-2008 à 19:00:41
le paramétrage via les generics ne peut se faire que par les classes, et pas par les types primitifs du langage Il faut donc utiliser les wrappers .... ou une autre structure de donnée
Marsh Posté le 29-03-2008 à 19:25:02
c'est quoi les wrappers ?
je suit un debutant et java semble trés trés difficile pour mois
Marsh Posté le 30-03-2008 à 00:23:22
Tu définis la variable "regles" de type ArrayList et cette classe ne possède pas d'attibut "primisse" ni "action" (ce sont les éléments de cette liste qui sont des instances de Regle et qui ont ces attibuts).
Au sujet de la 3eme erreur : Les ArrayList ne peuvent contenir que des instance d'objet, int est un type primitif. Si tu veux faire une liste de nombre entiers, tu dois utiliser des instances de la classe Integer (c'est cette classe qu'on qualifie de wrapper ou capsule en français)
Marsh Posté le 29-03-2008 à 18:55:10
je suit entrain de réaliser un moteur d'inférance
bon j'ai déclaré une classe regles comme suit:
class Regle
{ ArrayList<int> primisse=new ArrayList<int>();
int action;
int nombre;
boolean declanchable=false;
public Regle(int primisse,int action,int nombre,boolean declanchable)
{ this.primisse=primisse;
this.action=action;
this.nombre=nombre;
this.declanchable=declanchable;
}
}
et mon code :
public class MoteurInference
{ public static void main(String[] args)
{ArrayList <String> faits=new ArrayList<String>();
ArrayList <Regle> regles=new ArrayList<Regle>();
...........etc
regles.primisse.add(faits.indexOf(mot));
regles.action.add(faits.indexOf(mot));
...........etc
}
}
compilation____
MoteurInference.java:87: cannot find symbol
symbol : variable primisse
location: class java.util.ArrayList<Regle>
{regles.primisse.add(faits.indexOf(mot));
^
MoteurInference.java:100: cannot find symbol
symbol : variable action
location: class java.util.ArrayList<Regle>
regles.action.add(faits.indexOf(word));
^
MoteurInference.java:112: unexpected type
found : int
required: reference
{ ArrayList<int> primisse=new ArrayList<int>();
^
SVP comment je peut le corriger ,aidez mois