2013-05-20 13 views
1

У меня есть проблема с именованием следующие ситуацииинтерфейс в качестве параметра метода

{...} 

X.a; 
a.addListener(new ListenerForX(){ 
// some interface methods 
}); 

{...} 

Это то же самое, как:

{...} 
X.a; 
a.addListener(new XListener()); 
{...} 
private class XListener implements ListenerForX{ 
//some methods 
} 

Как это называется?

ответ

4

Первый пример кода называется anonymous inner class.

Оба примера действительны на Java. Метод просто интересует ListenerForX и не заботится об их реализации.

1

Первый - анонимный внутренний класс.

Скажем, у вас есть интерфейс Walkable с doWalk(),

Для метода, который принимает в проходимую Например, вы могли бы написать что-то подобное.

takeForaWalk(new Walkable() { 
void doWalk() { 
//Impl 
}} 
) 
Смежные вопросы