I'd like to write a method to add some objects to a generic collection (see below). If possible I wouldn't like to use generic types at class level (class Mapper<T extends BaseType).
import java.util.ArrayList;
import java.util.List;
class BaseType {
  public String getId() { return "Base";}
}
class TypeA extends BaseType {}
class TypeB extends BaseType {}
class Mapper {
  private final List<? extends BaseType> listA = new ArrayList<>();
  private final List<? extends BaseType> listB = new ArrayList<>();
  public List<? extends BaseType> getAList() {
    return listA;
  }
  public List<? extends BaseType> getBList() {
    return listB;
  }
  // HOW TO WRITE THIS METHOD CORRECTLY?
  public void addA(TypeA a) {
    listA.add(a);
    //    ^^^^^^ this doesn't compile :(
  }
}
