Is it possible to specify both upper and lower bound constraints on type parameters in Java?
I found a conversation in Sun\'s forum in which this issue was discussed
you can't specify both at the same time but you can achieve like given code.
class Family {
F f;
public void setF(F f) {
this.f = f;
}
}
class GrandParent {
}
class Parent extends GrandParent {
}
class Child extends Parent {
}
private void foo(Family super T> list) {
list = new Family(); // Allows
list = new Family(); // Allows
list = new Family(); // Not Allows
list.setF(new GrandParent()); // Not Allows
list.setF(new Parent()); // Not Allows
list.setF(new Child()); // Not Allows
}
public void bar() {
foo(new Family()); // Allows
foo(new Family()); // Allows
foo(new Family()); // Allows
}