Java Generics - ไม่มี Cast

ไม่อนุญาตให้แคสต์เป็นประเภทที่กำหนดพารามิเตอร์เว้นแต่จะกำหนดพารามิเตอร์โดยสัญลักษณ์แทนที่ไม่ถูกผูกไว้

Box<Integer> integerBox = new Box<Integer>();
Box<Number> numberBox = new Box<Number>();
//Compiler Error: Cannot cast from Box<Number> to Box<Integer>
integerBox = (Box<Integer>)numberBox;

เพื่อให้ได้ผลลัพธ์เดียวกันสามารถใช้สัญลักษณ์แทนที่ไม่ถูกผูกไว้ได้

private static void add(Box<?> box) {
   Box<Integer> integerBox = (Box<Integer>)box;
}