Si vous ne voulez pas un objet à créer, ne pas appeler new
. L'appel new
crée toujours un objet, même s'il est ensuite supprimé en raison d'une exception. Si vous souhaitez simplement éviter à l'appelant de de recevoir un objet à la suite de l'appel du constructeur, vous pouvez demander à votre constructeur de lancer une exception. Si vous voulez juste recevoir une référence null, vous ne pouvez pas le faire dans un constructeur.
Cependant, vous pourriez avoir une méthode statique au lieu, qui a ensuite conditionnellement appels new
ou renvoie null:
public class A
{
public static A createIfNonNegative(int i)
{
return i < 0 ? null : new A();
}
}