public class TypeVars<K, V> {
private void test(K key, V value) {
String s = "Negative size: " + key + "=" + value;
}
class MyClass<T> {
public T myMethod() {
return null;
}
}
public class TypeVarDefaults {
class ImplicitUpperBound<T> {}
class ExplicitUpperBound<T extends Object> {}
void useImplicit() {
ImplicitUpperBound<Object> bottom;
}
void useExplicit() {
ExplicitUpperBound<Object> bottom;
}
void wildCardImplicit() {
ImplicitUpperBound<?> bottom;
}
void wildCardExplicit() {
ExplicitUpperBound<?> bottom;
}
void wildCardUpperBoundImplicit() {
ImplicitUpperBound<? extends Object> bottom;
}
void wildCardUpperBoundExplicit() {
ExplicitUpperBound<? extends Object> bottom;
}
void wildCardLowerImplicit() {
ImplicitUpperBound<? super Object> bottom;
}
void wildCardLowerBoundExplicit() {
ExplicitUpperBound<? super Object> bottom;
}
}
}