package p;

public class WildcardParam_in {
	public void foo() {
		NumberCell<Integer> c1= new NumberCell<Integer>(3);
		NumberCell<Integer> c1a= NumberCell.createNumberCell(c1);
		NumberCell<Float> c2= new NumberCell<Float>(3.14F);
		NumberCell<Float> c2a= NumberCell.createNumberCell(c2);
	}
}
class NumberCell<T extends Number> {
	public static <T extends Number> NumberCell<T> createNumberCell(NumberCell<? extends T> other) {
		return new NumberCell<T>(other);
	}
	T fNum;
	public NumberCell(T n) {
		fNum= n;
	}
	private /*[*/NumberCell/*]*/(NumberCell<? extends T> other) {
		fNum= other.fNum;
	}
}
