Tipo de cambio de List <String>

ene :

Quiero insertar los valores de los productos que son de tipo arrayList en la base de datos, pero estoy recibiendo este error "java.lang.String cannot be cast to model.Product". El problema es con el elenco que hice en servlet. este es su código:

String buyer = request.getParameter("buyer");
List<String> prodlist = Arrays.asList(request.getParameterValues("product"));

List<Product> prodmlist = (List<Product>) (List<?>) prodlist;
Bill bill = new Bill(buyer, prodmlist);
myDAO.add(bill);

y este es el método que se rellenará

public static void add(Bill bill) {
Connection cnx;
    try {
    cnx = Connect.getConnection();
    String req = "insert into bil values (?,?)";
    PreparedStatement st = cnx.prepareStatement(req);
    st.setString(1, bill.getBuyer());
    for (Product prod : bill.getProduct()) {
        st.setString(2, prod.getName());
        st.addBatch(); // add the statement to the batch
    }
    st.executeUpdate();    
    cnx.commit();
}
David Brossard

En su código:

List<String> prodlist = Arrays.asList(request.getParameterValues("product"));
// Need to convert here...
List<Product> prodmlist = (List<Product>) (List<?>) prodlist;

Es necesario para convertir explícitamente List<String>a List<Product>. Hacer algo a lo largo de las líneas de:

List<Product> products = new ArrayList<Product>();
for (String s: prodList){
    Product p = new Product();
    p.setName(s);
    products.add(p);
}

Ahora, estoy haciendo la suposición de que tiene un regulador para establecer el nombre de producto. Puede ser que tiene un constructor que puede pasar el nombre de (y guardar una línea de código).

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=314202&siteId=1
Recomendado
Clasificación