Najpierw musisz się zastanowić, czy klasa wewnętrzna powinna być statyczna, czy też nie.
Jeżeli masz klasę wewnętrzną niestatyczną, to raczej nie ma sensu wprowadzać w niej dodatkowego typu M.
Przykład dla klasy niestatycznej:
public class KlasaA<T extends Comparable<? super T>>
{
class KlasaB {
public T key;
}
KlasaA(){
KlasaB obj = new KlasaB();
KlasaB obj2 = new KlasaB();
obj.key.compareTo(obj2.key);
}
private KlasaB obj;
}
Przykład dla klasy statycznej:
public class KlasaA<T extends Comparable<? super T>>
{
static class KlasaB<M extends Comparable<? super M>> {
public M key;
}
KlasaA(){
KlasaB<T> obj = new KlasaB<T>();
KlasaB<T> obj2 = new KlasaB<T>();
obj.key.compareTo(obj2.key);
}
private KlasaB<T> obj;
}