1
Je viens de commencer à jouer avec les génériques et je veux m'assurer que j'ai bien compris, toute aide?Est-ce une bonne façon de mettre les génériques Java en action?
public interface Cart<T extends CartItem> {
public void setItems(List<T> items);
public List<T> getItems();
}
public interface CartItem {
public BigDecimal getQty();
public void setQty(BigDecimal qty);
// more
}
public class CartService<T extends Cart<E>, E extends CartItem> {
public void addOrReplaceItem(T cart, E newCartItem) {
List<E> items = cart.getItems();
int position = items.indexOf(newCartItem);
if(position > -1) {
E existingItem = items.get(position);
existingItem.setQty(existingItem.getQty()
.add(newCartItem.getQty()));
} else {
items.add(newCartItem);
}
}
}
public interface GroceryCart extends Cart<GroceryCartItemImpl>{
// more
}
public interface GroceryCartItem extends CartItem {
// more
}
public class GroceryCartItemImpl implements Serializable, GroceryCartItem {
// more
}
public class GroceryCartImpl implements Serializable, GroceryCart {
// more
}
Appel CartService:
GroceryCartImpl gc = ............
GroceryCartItemImpl gci = ...........
CartService<GroceryCartImpl, GroceryCartItemImpl> cs =
new CartService<GroceryCartImpl, GroceryCartItemImpl>();
cs.addOrReplaceItem(gc, gci);
+1: Plus descriptif que le mien, et je me tiens corrigé sur les outils. :) –