Illegaler Aufruf der statischen Schnittstellenmethode

8

Java-8 erlaubt das Definieren von statischen Methoden in der Schnittstelle, aber beschränkt den Aufruf nur durch den Namen der Schnittstelle:

  

9.4: Eine Schnittstelle kann statische Methoden deklarieren, die ohne aufgerufen werden   Verweis auf ein bestimmtes Objekt.

ZB:

%Vor%

verursacht einen Fehler:

%Vor%

Solche Verbote haben in JLS oft eine Erklärung. In diesem Fall habe ich nichts Detailliertes gefunden. Ich suche daher nach einer umfassenden oder verbindlichen Erklärung dieser Regel: Warum ist es verboten, die statische Methode über eine bestimmte Objektreferenz aufzurufen? Was bricht es?

    
Andremoniy 10.01.2016, 18:17
quelle

1 Antwort

16

Es ist ein ziemlich starker Konsens, dass die fragliche Syntax auch für statische Methoden in Klassen nicht erlaubt sein sollte, aber nach der Zeit, die erkannt wurde, war es zu spät, um sie zu ändern. Es war nicht zu spät für die kürzlich hinzugefügten Schnittstellenmethoden.

Darüber hinaus würde das Zulassen dieser Syntax die Möglichkeit des Rautenproblems einführen, da eine Klasse Schnittstellen implementieren könnte, die kollidierende Methoden definieren.

    
chrylis 10.01.2016, 18:24
quelle

Tags und Links