-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
En tu clase Venta
declaraste un atributo ventas y lo inicialiste con []
...
class Venta {
int id;
Date fecha;
MetodoPago metodoDePago;
PrendaXVenta ventas = [];
MetodoPago metodoDePago() {
return metodoDePago;
}
double totalAPagar() {
ventas.sum({ventaXPrenda => ventaXPrenda.pagoParcial()}); //no se cómo se hace esto en java, yo lo hice en wollok y lo trate de pasar a java
}
}
Si bien eso en Haskell, Prolog y Wollok y muchos otros lenguajes más es una lista, en Java no es el caso.
Para crear una lista tenés que hacerlo instanciando explicitamente una, como por ejemplo new LinkedList<>()
List<PrendaXVenta> ventas = new LinkedList<>()
Por otro lado, para hacer sumatorias, mapeos y demases en Java necesitás un paso más: convertir tu colección en un stream, que es un objeto que nos permite operar de forma cómoda y eficiente sobre colecciones.
Por ejemplo, para hacer una sumatoria, tendrías que hacer lo siguiente (código copiado de la documentación de Stream
):
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();
Te dejo para que leas:
- el apunte de Java, que tiene una sección sobre este tema
- la documentación oficial
- otro artículo más, en español
Metadata
Metadata
Assignees
Labels
No labels