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?
Gibt es in Java so etwas wie eine „lokale Schnittstelle“? ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post