Ve Vasi knize na str. 223 pisete o operatoru instanceof, ze s jeho pomoci lze take zjistit, zda referencni promenna je typu nejake tridy. Mne ale po pokusech pripada, ze to funguje pouze tehdy, jsou-li skutecny a zkoumany typ promenne svazany dedicnosti (nebo mozna i jinak), avsak nesouvisi-li spolu, dojde k chybe pri prekladu: **********zacatek*********** class A { private int a; A(int co) { a = co; } } public class B { public static void main(String[] args) { A a = new A(56); // Toto je O.K. if (a instanceof A) System.out.println("a je instance A"); // zde hlasi prekladac chybu if (a instanceof B) System.out.println("a je instance B"); } } ******************************** Prekladac vypise: B.java:16: inconvertible types found : A required: B if (a instanceof B) ^ 1 error Nevim tedy, jedna-li se o nepresnost ve Vasi knize nebo o neco jineho. Zkouseno pod JDK1.3. Marcel Svitalsky ================================================ I me se objevuje tataz chyba pri prekladu. Zkousel jsem nalezt vysvetleni v Thinking in Java (12. kapitola), ale marne. Moje vysvetleni je, ze kompilator je dostatecne chytry na to, aby z danych trid zjistil, ze referencni promenna a je typu, ktery NIKDY nemuze mit neco spolecneho se tridou B a proto tento zapis vyhodi uz pri prekladu jako chybu. Tim zabrani vzniku kodu, na ktery se nelze nikdy dostat. Opakuji vsak, ze se jedna pouze o moji domnenku. P.Herout P.S.: Pokuď některý ze čtenářů zná vysvětlení, budu mu za něj vděčný.