typ generyczny a klasa wewnętrzna

0

Witam,
mam klasę wewnętrzną i chciałbym ją przerobić na typ generyczny mam jednak problem z compareTo, mam nadzieję że kod więcej wyjaśni:

class KlasaA<T>
{	
	class KlasaB<M>{
		public M key;
	}
	
	KlasaA(){
		//obj = new KlasaB<T>;
		//obj.key.compareTo        <=== nie moge tego użyć
	}
private KlasaB<T> obj;
}
0

twoja klasa musi implementowac interfejs comparable
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html

1

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;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.