Foro sobre Java SE > Duda sencilla sobre la creación de objetos.
Efectivamente, cuando se crea el objeto deja de ser nullo. Pero si queres tener esta funcionalidad, podrías crear una clase que contenga a Monedero, entonces sólo si el valor es positivo se crea la instancia de Monedero. Entoces el metodo getMonedero() te devolverá nullo o el valor correspondiente.
Ejemplo:
public class MyMonedero{
private Monedero monedero
public MyMonedero(int valor) {
if (valor >=0) {
monedero = new Monedero(valor);
}
}
public Monedero getMonedero() {
return monedero;
}
}
Monedero getMonedero(int parametro){
return parametro < 0 ? null : new Monedero(parametro);
}
Gracias...había pensado en esas alternativas pero quería saber si se podía hacer desde el constructor.
Saludos!
No se puede asignar un valor null a una instancia de una clase, desde su constructor.
Hay otra posibilidad que se resume en el test siguiente.
public class Monedero {
public Monedero(final int valor) {
if (valor < 0) {
throw new IllegalArgumentException("valor menor que cero");
}
}
}
public class TestMonedero {
public static void main(String[] args) {
Monedero clazz1 = null;
try {
clazz1 = new Monedero(1);
} catch (IllegalArgumentException ex) {
}
System.out.println(clazz1);
Monedero clazz2 = null;
try {
clazz2 = new Monedero(-1);
} catch (IllegalArgumentException ex) {
}
System.out.println(clazz2);
}
}
Hola a tod@s,
siempre me ha surgido esta duda..y la verdad..no sé como resolverla....
Imaginemos que tengo una clase Monedero, con un atributo saldo que siempre deberá de ser positivo. Imaginemos que dicha clase posee un constructor que recibe un parámetro de tipo entero que será el saldo. A mi me gustaría hacer...si me pone un saldo negativo...no creo dicho objeto..pero Java te obliga que una vez se está en el constructor se va a crear si o si el objeto...
Monedero m = new Monedero(-1000);
Me gustaría que m valiese null y no fuera un objeto tipo monedero.
Gracias.
Saludos.