Der folgende Code kompiliert fein:Compilerfehler Instanz final class
interface Flyer{ }
class Bat { }
public class App {
public static void main(String[] args) {
Bat b = new Bat();
if(b instanceof Flyer) System.out.println("b is a Bird");
}
}
Wenn wir die Klasse Bat
final
machen, wird der Code nicht kompilieren:
final class Bat { }
Wenn die letzte Klasse implementiert Flyer
es kompiliert in Ordnung:
final class Bat implements Flyer { }
Beliebig eine Sorge, um die Logik dahinter zu erklären?
Würde 'null instanceof X' unabhängig vom" type "der Null-Instanz" true "zurückgeben? Allerdings kann ich sehen, dass dies sehr zwielichtig wäre, den Compiler das akzeptieren zu lassen. – Dici
@Dici Eigentlich ist ['null instanceof X' immer' false'] (http://stackoverflow.com/questions/2950319/is-null-) check-needed-vor-Aufruf-instanceof). – Tunaki
Ups ... Entschuldigung, du hast recht, ich benutze das sogar, um alle meine 'equals' Methoden zu schreiben. Ich brauche einen Schlaf: D – Dici