A Java instanceof kezelőfelület
más néven Jellemzők A instanceof üzemeltető, hogy teszteljék a végrehajtás a felület tárgy a nyelv Java. Végtére is, biztosan valaki hosszú címeket, mint a több. )
Rájöttem, egy másik érdekes pontja tekintetében a végrehajtás a instanceof szereplő Java, ami ritka, ahol említik.
Mindannyian tudjuk, hogy a kísérlet, hogy használja a instanceof szereplő típus, nem egyazon öröklési hierarchia élesen elnyomta a fordító. Például, a következő kód:
eredményez a fordító hibát:
De kiderült, hogy ez nem mindig van így. Nézzük helyettesíti az osztály a jobb oldali instanceof bármilyen felületen:
Furcsa módon, ebben az esetben az összeállítás meglehetősen sikeres! És mellesleg, a lefordított program végrehajtása általában minden probléma nélkül, és megjeleníti az eredményt „false” a konzolra.
Próbálj meg nem ugrik a következtetéseket, mert ha tudjuk átírni a példánkban a következő:
újra fog eredményezni fordítási hiba! Ez majdnem ugyanaz, mint az első esetben:
Vicces, nem?
Tény, hogy a lényeg az, hogy a húr - az utolsó osztály, szemben a mi osztály Class1. Ha egy osztály nyilvánítják a módosító végleges, a fordító nem tudja megállapítani, hogy a végrehajtási bármely felületen vagy nem osztály. Minden más esetben, a fordító lehetetlenné teszik, mert a felület lehet végrehajtani az egyik leszármazottja az osztály. Igen, nem túl meggyőző kifogás, véleményem szerint, de mégis, hogy „az élet, fiam.”
Úgy vélem, hogy a tudás a instanceof üzemeltető az ilyen viselkedés hasznos a programozók, akik arra készülnek, hogy megy a Java-minősítést. Ugyanúgy használata instanceof kezelőfelület tárgyát képezte az egyik trükkös kérdés, találkoztam előkészítése során a OCPJP.