Java - API Stream - Inconvertible types; cannot cast 'edu.uoc.pac4.ShoppingCart' to 'edu.uoc.pac4.DigitalPr

 
Vista:
sin imagen de perfil

API Stream - Inconvertible types; cannot cast 'edu.uoc.pac4.ShoppingCart' to 'edu.uoc.pac4.DigitalPr

Publicado por Xavi (21 intervenciones) el 03/12/2021 20:48:59
Hola,

tengo el siguiente diagrama UML:

uml1

Estoy intentando implementar el método getDigitalProductOrderByName(). Este método utiliza la API Stream para obtener una lista ordenada alfabéticamente de los nombres de los productos digitales que hay en un carrete, es decir, de los productos tipo DigitalProduct que hay en la lista cart.

En la clase ShoppingCart se ha definido lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package edu.uoc.pac4;
 
import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;
import java.util.stream.Collectors;
 
public class ShoppingCart {
 
private String clientName;
private double total;
private List <ShoppingCart> cart;
 
public ShoppingCart(String clientName) {
    cart = new ArrayList<>();
    setClientName(clientName);
}
 
public String getClientName() {return clientName;}
 
public void setClientName(String clientName) {this.clientName = clientName;}
 
public double getTotal() {return total;}
 
public void setTotal(double total) {
    this.total = (double) Math.round(total * 100) / 100;
}
 
// MÉTODO STREAM
 
public List<String> getDigitalProductOrderByName() {
 
    return this.cart.stream().filter(cart -> cart instanceof DigitalProduct).map(ShoppingCart::getClientName).sorted().collect(Collectors.toList());
}

Sin embargo, me da el siguiente error:

1
Inconvertible types; cannot cast 'edu.uoc.pac4.ShoppingCart' to 'edu.uoc.pac4.DigitalProduct'

Hay que mencionar que el diagrama UML adjunto es un diagrama complementario al siguiente, sin embargo, en este se omiten aquellos elementos que no se relacionan con ShoppingCart


lala
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

API Stream - Inconvertible types; cannot cast 'edu.uoc.pac4.ShoppingCart' to 'edu.uoc.pac4.DigitalPr

Publicado por Tom (1831 intervenciones) el 03/12/2021 21:04:29
Yo no veo en tu código ninguna relación entre ShoppingCart y DigitalProduct. No has implementado correctamente ShoppingCart.

El error es bastante claro, no puedes hacer ese cast.
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
sin imagen de perfil

API Stream - Inconvertible types; cannot cast 'edu.uoc.pac4.ShoppingCart' to 'edu.uoc.pac4.DigitalPr

Publicado por Xavi (21 intervenciones) el 03/12/2021 21:33:03
Perdón, ya modifiqué el código y no sale el error.
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