using java.lang;

public class WildcardLowerConstraintArgument<T> {
	public static bool test() {
		WildcardLowerConstraintArgument<Integer> obj1 = new WildcardLowerConstraintArgument<Integer>(new Integer(1));
		WildcardLowerConstraintArgument<Number> obj2 = new WildcardLowerConstraintArgument<Number>(new Integer(1));
		return method(obj1) instanceof Double && method(obj2) instanceof Integer;
	}
	
	T value;
	
	WildcardLowerConstraintArgument(T value) {
		this.value = value;
	}
	
	static Object method(WildcardLowerConstraintArgument<Number : ?> arg) {
		return arg.value;
	}
}
