Si no desea que un objeto que se cree, no llame new
. Si llama new
siempre crea un objeto, incluso si luego se descarta debido a una excepción. Si solo desea evitar que la persona que llama desde reciba un objeto como resultado de la llamada al constructor, puede hacer que su constructor genere una excepción. Si lo desea solo para recibir una referencia nula, no puede hacer eso en un constructor.
Sin embargo, usted podría tener un método estático en su lugar, que luego condicionalmente llamadas new
o vuelve nulo:
public class A
{
public static A createIfNonNegative(int i)
{
return i < 0 ? null : new A();
}
}