public class Bag { private E item; public void setItem(E x) { item = x; } public E getItem() { return item; } public static void main(String[] args) { Bag bagInt = new Bag(); bagInt.setItem(new Integer(42)); Bag bagStr = new Bag(); bagStr.setItem("A very fine string"); // which of the following (if any) are legal? // bagInt.setItem("A very fine string"); // bagInt.setItem("42"); // bagStr.setItem(new Integer(42)); // bagStr.setItem(new Object()); // bagInt=bagStr; // bagInt.setItem(42); // Bag> bagBag = new Bag>(); // this is apparently legal; what type is 'E'? Bag someBag = new Bag(); /* * //what's wrong with the following code (once uncommented)? String s = * "x"; someBag.setItem(s); s = someBag.getItem(); */ } }