instruction java

Le
atef
public SingleSupervisedLearner createSupervisedLearner(Entries
entries)
throws InvocationTargetException, NumericEntriesException {
Constructor constructor;
Object[] parameters = null;
try {
// Learner to instanciate is a neural network
if(AbstractNeuralNetwork.class.isAssignableFrom(learnerClass)) {
// début d'instruction à comprendre
constructor = learnerClass.getConstructor(new Class[]
{NumericEntries.class, boolean.class});
if(! (entries instanceof NumericEntries)) {
System.out.println("[ Error : entries are instance of
"+entries.getClass()+" and contain " +
entries.getNbAttribute(Attribute.SYMBOLIC) + " symbolical
attributes ]");
throw new NumericEntriesException();
}
parameters = new Object[] {new
SubNumericEntries((NumericEntries)entries), new Boolean(regression)};
SingleSupervisedLearner learner =
(SingleSupervisedLearner)constructor.newInstanc(parameters);
return learner;
}
// fin des instruction à comprendre
// It's a tree
else if
(AbstractDecisionTree.class.isAssignableFrom(learnerClass))
{
constructor = learnerClass.getConstructor(new Class[] {Entries.class,
boolean.class});
parameters = new Object[] {new SubEntries(entries), new
Boolean(regression)};
return (SingleSupervisedLearner)constructor.newInstance(parameters);
}
}
catch(NumericEntriesException nee) {
throw nee;
}
catch(InvocationTargetException e) {
throw new
InvocationTargetException(e.getCause(), "Cannot
instanciate class " + learnerClass.getName());
}
catch(NoSuchMethodError e) {
throw new
InvocationTargetException(e.getCaus(), "Constructor used
in SingleLearnerFactory doesn't match constructor of class " +
learnerClass.getName());
}
catch(Exception e) {
e.printStackTrace();
}
return null;
}
bon je veus comprendre les lignes marqués et surtout ces 3 là:
constructor = learnerClass.getConstructor(new Class[]
{NumericEntries.class, boolean.class});
parameters = new Object[] {new SubEntries(entries), new
Boolean(regression)};
return (SingleSupervisedLearner)constructor.newInstance(parameters);
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
seb666fr2
Le #6614431
On 13 mai, 23:05, atef
  public SingleSupervisedLearner createSupervisedLearner(Entries
entries)

// début d'instruction à comprendre
constructor = learnerClass.getConstructor(new Class[]
{NumericEntries.class, boolean.class});


1) Recherche du constructeur de la classe learnerClass dont la
signature est de la forme :
learnerClass(NumericEntries param1, boolean param2)

            if(! (entries instanceof NumericEntries)) {
 System.out.println("[ Error : entries are instance of
"+entries.getClass()+" and contain " +
entries.getNbAttribute(Attribute.SYMBOLIC) + " symbolical
attributes ]");
                    throw new NumericEntriesException( );
                }


Si le paramètre "entries" n'est pas une instance de NumericEntries,
un
message est affiché et une exception NumericEntriesException est
levée.


parameters = new Object[] {new
SubNumericEntries((NumericEntries)entries), new Boolean(regression)};


2) initialise un tableau de 2 objets avec une instance de
SubEntries et une instance de Boolean.

SingleSupervisedLearner learner =
(SingleSupervisedLearner)constructor.newInstanc(parameters);


3) Créé une instance de SingleSupervisedLearner. L'instance
est créée à l'aide du constructeur obtenu en (1) et des objets stock és
dans le tableau "parameters" créé en (2). En d'autres termes,
l'instruction
d'introspection ci-dessus est équivalente au code suivant :

SingleSupervisedLearner learner = new SingleSupervisedLearner (
SubNumericEntries((NumericEntries)entries),
new Boolean(regression)
)

--
SeB

atef
Le #6627671
Bonjour seb c exactement ça en faite déja avant que j'ai lu votre
message j'ai douté de ça mais une petite remarque la derniére
instruction ne peus pas remplacer les 2 instructions car en faite
SingleSupervisedLearner learner est une interface! Et l'auteur de ce
code a passé par ces instructions pour cette raison et en plus par ce
que les constructeurs des classe "learnerClass " ,qui sont de la
forme subLearner.class , sont differents alors c une forme de
normalisation.

en fin merci beaucoup pour votre coup de main vous etes génial ^^.
Publicité
Poster une réponse
Anonyme