den folgenden Code vor:eine willkürlich definierte Methode eines anonymen Schnittstelle verwenden
public static void main(String[] args) {
File file = new File("C:\\someFile.txt") {
public void doStuff() {
// Do some stuff
}
};
file.doStuff(); // "Cannot resolve method"
}
Wenn wir versuchen, unsere neu definierte Methode doStuff()
zu nennen, ist es nicht möglich. Der Grund dafür ist, dass file
als ein Objekt vom Typ File
deklariert ist und nicht als eine Instanz unserer neuen, anonymen Kindklasse.
Also, meine Frage ist, gibt es eine "nette" Möglichkeit, dieses Verhalten zu erreichen? Anders als das Offensichtliche (das ist nur, um die Klasse richtig zu deklarieren).
http://stackoverflow.com/questions/8697971/anonymous-class-method-access - Sie sind nicht „überschrieben“ alles hier, was die üblichere Verwendung von anonymen Klassen, so dass Ihre Methode würde nur verfügbar sein innerhalb Ihrer anonymen Klasse oder wenn Sie etwas mit Reflektion –
'extend' getan haben, ist nett genug für mich. –
Sie können eine anonyme Klasse verwenden, aber Sie können keine anonyme Schnittstelle haben. –