OVH Cloud OVH Cloud

Instance

4 réponses
Avatar
Stéphane Delpech
Bonjour,

Une question d'ordre général:

Est il est possible de refuser "l'instanciation" d'une classe quelconque au
niveau du constructeur lorsque par exemple la valeur d'un paramètre du dit
constructeur n'est pas correct ?

Merci

4 réponses

Avatar
Philippe
Stéphane Delpech wrote:
Bonjour,

Une question d'ordre général:

Est il est possible de refuser "l'instanciation" d'une classe quelconque au
niveau du constructeur lorsque par exemple la valeur d'un paramètre du dit
constructeur n'est pas correct ?

Merci


oui en lanceant une exception, l'instanciation n'est pas faite

public class A {
public A(int n) throws Exception {
if (n < 0)
throw new Exception("Argument Négatif");
}

public static void main(String[] args) {
// Pour 1 : ok
A a1 = null;
try {
a1 = new A(1);
} catch (Exception e) {}
System.out.println("a1 = " + a1);

// Pour -1 : rien
A a2 = null;
try {
a2 = new A(-1);
} catch (Exception e) {}
System.out.println("a2 = " + a2);
}
}

J'obtiens :

a1 =
a2 = null

Avatar
Black Myst
Stéphane Delpech wrote:
Bonjour,

Une question d'ordre général:

Est il est possible de refuser "l'instanciation" d'une classe quelconque au
niveau du constructeur lorsque par exemple la valeur d'un paramètre du dit
constructeur n'est pas correct ?

Merci




Une réponse est disponible ici :
http://java.developpez.com/faq/java/?page=divers#LANGAGE_annulation_construction

Avatar
T007
Stéphane Delpech wrote:

Bonjour,

Une question d'ordre général:

Est il est possible de refuser "l'instanciation" d'une classe quelconque au
niveau du constructeur lorsque par exemple la valeur d'un paramètre du dit
constructeur n'est pas correct ?

Merci


Une idee, je ne sais pas..


s'il y a un constructeur complexe,
tu n'as plus de constructeur simple par défaut
tu interndis la contruction par default.

un contructeur correspond a une void, tu peux faire un return null, ou
false..

une piste a creuser ..

Avatar
Stéphane Delpech
Bonsoir,

Merci pour vos réponses.

@+