Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

instruction java

2 réponses
Avatar
atef
public SingleSupervisedLearner createSupervisedLearner(Entries
entries)
throws InvocationTargetException, NumericEntriesException {
Constructor constructor;
Object[] parameters =3D null;
try {
// Learner to instanciate is a neural network
if(AbstractNeuralNetwork.class.isAssignableFrom(learnerClass)) {
// d=E9but d'instruction =E0 comprendre
constructor =3D 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 =3D new Object[] {new
SubNumericEntries((NumericEntries)entries), new Boolean(regression)};
SingleSupervisedLearner learner =3D
(SingleSupervisedLearner)constructor.newInstanc(parameters);
return learner;
}
// fin des instruction =E0 comprendre
// It's a tree
else if
(AbstractDecisionTree.class.isAssignableFrom(learnerClass))
{
constructor =3D learnerClass.getConstructor(new Class[] {Entries.class,
boolean.class});
parameters =3D 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=E9s et surtout ces 3 l=E0:
constructor =3D learnerClass.getConstructor(new Class[]
{NumericEntries.class, boolean.class});
parameters =3D new Object[] {new SubEntries(entries), new
Boolean(regression)};
return (SingleSupervisedLearner)constructor.newInstance(parameters);
Merci

2 réponses

Avatar
seb666fr2
On 13 mai, 23:05, atef wrote:

  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

Avatar
atef
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 ^^.