Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Sugerencia] Carrito de compras

Con cualquiera de estas variantes cumples la restricción de 10 productos, y al mismo tiempo mejoras la legibilidad, la gestión de errores y la mantenibilidad de tu código.

public class CarritoLlenoException extends RuntimeException {
    public CarritoLlenoException() {
        super("El carrito ya alcanzó su capacidad máxima.");
    }
}

// En Carrito:
public void agregarProducto(Producto producto) {
    if (productos.size() >= MAX_PRODUCTOS) {
        throw new CarritoLlenoException();
    }
    productos.add(producto);
}
public void agregarProducto(Producto producto) {
    final int MAX = 10;
    if (productos.size() >= MAX) {
        System.out.println("¡Carrito lleno!");
        return;
    }
    productos.add(producto);
}
public class Carrito {
    private static final int MAX_PRODUCTOS = 10;
    private final List<Producto> productos = new ArrayList<>();

    /**
     * @return true si pudo agregarse, false si ya estaba lleno.
     */
    public boolean agregarProducto(Producto producto) {
        if (productos.size() < MAX_PRODUCTOS) {
            productos.add(producto);
            return true;
        }
        return false;
    }
}
public class Carrito {
    private static final int MAX_PRODUCTOS = 10;
    private final List<Producto> productos = new ArrayList<>();

    /**
     * Agrega un producto o lanza IllegalStateException si está lleno.
     */
    public void agregarProducto(Producto producto) {
        if (productos.size() >= MAX_PRODUCTOS) {
            throw new IllegalStateException("Carrito lleno: no se pueden añadir más de " 
                                            + MAX_PRODUCTOS + " productos.");
        }
        productos.add(producto);
    }
}
1 respuesta
solución!

¡Hola Cristian, espero que estés bien!

Parece que estás trabajando en una implementación para un carrito de compras en Java y quieres asegurarte de que no se puedan añadir más de 10 productos. La opción correcta para modificar el método agregarProducto y cumplir con esta restricción es la opción A. Aquí está el porqué:

La opción A utiliza el método size() de ArrayList para verificar cuántos productos ya están en el carrito. Si el tamaño es menor que 10, añade el producto; de lo contrario, imprime "Carrito lleno!". Esto es correcto porque size() es el método adecuado para obtener el número de elementos en un ArrayList.

En las otras opciones:

  • La opción B usa length(), que no es un método de ArrayList.
  • La opción C sugiere que no hay necesidad de cambios, lo cual es incorrecto porque ArrayList no tiene un límite de 10 elementos por defecto.
  • La opción D intenta usar size sin paréntesis, lo cual es incorrecto porque size es un método, no una propiedad.

Espero que esto te ayude a entender por qué la opción A es la correcta. ¡Espero haber ayudado y buenos estudios!