When using a bounded wild card we can limit the parametric type as if we were saying that it can be any type as long as it extends or implements a specific type we specify.
package il.ac.hit.samples;
import java.util.Iterator;
import java.util.Vector;
public class BoundedWildCardSample
{
public static double calculateTotal(Vector<? extends Shape> vicy)
{
double sum = 0;
Iterator<? extends Shape> iterator = vicy.iterator();
while (iterator.hasNext())
{
sum += iterator.next().area();
}
return sum;
}
public static void main(String args[])
{
double total = 0;
Vector<Circle> victor = new Vector<Circle>();
victor.add(new Circle(4));
victor.add(new Circle(8));
victor.add(new Circle(2));
// victor.add(new Rectangle(4,2));
// victor.add(new Rectangle(5,4));
total = calculateTotal(victor);
System.out.println("total=" + total);
}
}
The following video clip shows how to use bounded wild cards and provides more in-depth explanation.







