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.

Kapcsolódó cikkek