Java - crear id unico automaticamente en una clase

 
Vista:
sin imagen de perfil
Val: 46
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

crear id unico automaticamente en una clase

Publicado por jose luis (17 intervenciones) el 17/01/2021 18:31:42
hola tengo la siguiente clase:
1
2
3
4
5
6
7
8
9
10
11
12
13
public class carrito {
 
	private int idCarrito;
	private int idUsuario;
	private int nArticulos=0;
	private double descuento=0;
	private articulo[] articulo = new articulo[100];
 
	public carrito(int iC,int iU)
	{
 
	}
}
he obviado el resto del codigo porque no es relevante. El tema es que necesito que la propia clase genere (si es que es posible) un idCarrito cada vez que se cree un objeto de la clase carrito, y que ese idCarrito sea unico. ¿es posible hacer esto?
un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.064
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

crear id unico automaticamente en una clase

Publicado por Rodrigo (622 intervenciones) el 17/01/2021 22:49:44
Tienes que recordar cual fue el ultimo id que creaste desde la ultima vez que ejecutaste el programa?
Se puede hacer que haya un contador que comience en 1 pero si no grabas el ultmo usado, cada vez que comience la ejecucion del programa se vovera a 1. No parece muy conveniente.

Pero, si esto no es un problema, puedes usar una variable static que lleve la cuenta y cada objeto obtiene el valor de esa variable, por ejemplo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Carrito {
    static int generador = 1;
 
    int id;
    public Carrito() {
        id = generador++;
    }
 
    public String toString() {
        return "id:" + id;
    }
 
    public static void main(String[] args) {
        for(int i = 0; i < 5; i++) {
            Carrito carrito = new Carrito();
            System.out.println(carrito);
        }
    }
}

Tambien podrias usar la clase UUID, cambiando el tipo de idCarrito a este tipo, y luego asignarle lo que retorrne UUID.randomUUID() y con ello no requeririas grabar nada, solo cruzar los dedos que los id no se repitan :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 46
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

crear id unico automaticamente en una clase

Publicado por jose luis (17 intervenciones) el 17/01/2021 23:25:05
gracias, lo del static me valio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar