Изучая немного о Лямбда-выражениях в 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”