Изучая немного о Лямбда-выражениях в Java, я только что упав в документации, и, следовательно, читал о Анонимного Класса.
Я нашел прохладно и я решил перевести и попытаться подвести:
Анонимные классы позволяют вам создать более код consciso. Они позволяют объявить и создать экземпляр класса, в то же время.
Они, как классы местах, за исключением того, что они не имеют имени.
Рекомендуется использовать в случае, если требуется местных класс только один раз.
Объявление анонимного класса
В то время как локальных классов являются классы, объявленные классы, анонимные выражения, что означает, что вы определяете класс в другое выражение.
Пример:
public class HelloWorldAnonymousClasses {
interface HelloWorld {
public void greet();
public void greetSomeone(String someone);
}
public void sayHello() {
class EnglishGreeting implements HelloWorld {
String name = "world";
public void greet() {
greetSomeone("world");
}
public void greetSomeone(String someone) {
name = someone;
System.out.println("Hello " + name);
}
}
//classe declarada na inicialização
HelloWorld englishGreeting = new EnglishGreeting();
//classe anônima na inicialização da variável frenchGreeting
HelloWorld frenchGreeting = new HelloWorld() {
String name = "tout le monde";
public void greet() {
greetSomeone("tout le monde");
}
public void greetSomeone(String someone) {
name = someone;
System.out.println("Salut " + name);
}
};
//classe anônima na inicialização da variável frenchGreeting
HelloWorld spanishGreeting = new HelloWorld() {
String name = "mundo";
public void greet() {
greetSomeone("mundo");
}
public void greetSomeone(String someone) {
name = someone;
System.out.println("Hola, " + name);
}
};
//Mesmo efeito no final das constas
englishGreeting.greet();
frenchGreeting.greetSomeone("Fred");
spanishGreeting.greet();
}
public static void main(String... args) {
HelloWorldAnonymousClasses myApp =
new HelloWorldAnonymousClasses();
myApp.sayHello();
}
}
Синтаксис анонимного класса
Как уже упоминалось ранее, анонимный класс-это выражение.
Синтаксис анонимного класса равен вызов конструктора, за исключением определений, содержащихся в блоке кода.
Рассмотрим экземпляр объекта frenchGreeting:
HelloWorld frenchGreeting = new HelloWorld() {
String name = "tout le monde";
public void greet() {
greetSomeone("tout le monde");
}
public void greetSomeone(String someone) {
name = someone;
System.out.println("Salut " + name);
}
};
Анонимный класс состоит из следующих элементов:
- Оператор
new - Имя интерфейса для реализации или для расширения. Нет примера переднего, класс аноним есть реализация интерфейса Привет, мир.
- Скобки, которая содержит аргументы для конструктора, точно так же, как экземпляр класса нормальный. Примечание: Когда вы, реализующий интерфейс, не имеет конструктора, поэтому вы используете только пару скобок равна пример.
- Тело это объявление тела класса. Более конкретно, в теле, метод заявление допускается, но заявления нет.
Учитывая, что определение анонимного класса-это будет выражением, она должна быть частью переменной.
Источник: Документация Java
Оригинал: “https://dev.to/diariodeumacdf/expressao-lambda-parte-i-classes-anonimas-1adc”