Gibt es in Java so etwas wie eine „lokale Schnittstelle“?Java

Java-Forum
Guest
 Gibt es in Java so etwas wie eine „lokale Schnittstelle“?

Post by Guest »

Mit Java kann ich lokale abstrakte Klassen definieren, wie in diesem Beispiel:

public class Foo {

public void foo() {
abstract class Bar { // Bar is a local class in foo() ...
abstract void bar();
}

new Bar() { // ... and can be anonymously instantiated
void bar() {
System.out.println("Bar!");
}
}.bar();
}
}


Aus irgendeinem Grund, wenn ich versuche, eine „lokale Schnittstelle“ anstelle der lokalen Klasse zu definieren, so:

public class Foo {

public void foo() {
interface Bar { // Bar was supposed to be a local interface...
void bar();
}

new Bar() { // ... to be anonymously instantiated
void bar() {
System.out.println("Bar!");
}
}.bar();
}
}


Java beschwert sich darüber, dass „die Mitgliedsschnittstellenleiste nur innerhalb einer Klasse oder Schnittstelle der obersten Ebene definiert werden kann“. Gibt es dafür einen Grund? Oder übersehe ich einen Fehler, den ich gemacht habe?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post