Компилятор Java жалуется, когда вы пишете недостижимый код. Напримерjava anonymous внутренний класс недостижимый код
public void go()
{
return;
System.out.println("unreachable");
}
Однако при определении нового метода в качестве анонимного класса, который не может быть достигнут из любого места, компилятор не жалуется. Это позволяет вам это делать, почему? Например,
class A
{
public void go()
{
System.out.println("reachable - A");
}
}
class B
{
public static void main(String [] args)
{
A a = new A() {
public void go()
{
System.out.println("reachable - B");
}
public void foo()
{
System.out.println("unreachable - B");
}
};
a.go(); // valid
a.foo(); // invalid, compiler error
}
}
Вам не хватает скобки '()' после 'нового A' и скобки'}; 'для завершения объявления анонимного внутреннего класса. – Jesper
Ваш код примера не компилируется вообще. Пожалуйста исправьте. – PeterMmm
Я просто скопировал его в файл B.java и прокомментировал строку a.foo(), затем скомпилировал ее и запустил. Извините, но я не вижу никакой ошибки в коде, кроме части a.foo(), о которой я уже упоминал, что она вызывает ошибку компиляции. – kioto