powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Получить доступ к захваченным значениям анонимного класса
11 сообщений из 11, страница 1 из 1
Получить доступ к захваченным значениям анонимного класса
    #39464571
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим есть:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
Callable<Object>() foo (){
                final MethodInvocation invocation = getSomeInvocation();
		return new Callable<Object>() {
			@Override
			public Object call() throws Exception {
                             return invocation.proceed();
			}
		};
}



и нужно получить доступ к объекту invocation здесь:

Код: java
1.
2.
Callable<Object> callable= foo();
callable.invocation???


Быстрый google результатов не дал и в целом есть сомнения что это можно в рефлекшн сделать. Так все же можно?
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464668
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaillТак все же можно?
Да. Можно. Локальные переменные в анонимные классы перекидываются через синтетические поля.
https://stackoverflow.com/a/34290645
Но есть нюанс, с тем что с появлением лямбд в Java 8 анонимные классы стали почти бесполезными. Реализация же лямд совсем иная.
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464743
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczс появлением лямбд в Java 8 анонимные классы стали почти бесполезными
Какое интересное мнение. Как известно, в виде лямбды можно выразить только функциональный интерфейс. Прочие случаи, по-видимому, весьма малочисленны и несущественны.
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464756
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TКакое интересное мнение. Как известно, в виде лямбды можно выразить только функциональный интерфейс. Прочие случаи, по-видимому, весьма малочисленны и несущественны.
Всё верно. Анонимный класс с несколькими методами - большая редкость. В большинстве случаев это индивидуальный класс, который кто-то поленился вынести. Единственный адекватный сценарий, который приходит на ум это некий адаптер когда класс должен реализовать интерфейс через наследование, но при этом не может это сделать напрямую из-за наличия другого родителя.

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

У меня уже несколько небольших проектов на Java 8. Желания использовать анонимный класс ещё ниразу не возникало.
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464823
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
Спасибо!
Поводу лямбд - не подскажите как делать подобные вещи (или где почитать)?

Желания использовать анонимный класс ещё ниразу не возникало.
Согласен, лямбды рулят.
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464840
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczУ меня уже несколько небольших проектов на Java 8. Желания использовать анонимный класс ещё ниразу не возникало.
Как тесты начнете писать - возникнет))
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464892
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TКак тесты начнете писать - возникнет))
Нет, не возникло. И без анонимных класов всё мокается.
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464915
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAndrei TКак тесты начнете писать - возникнет))
Нет, не возникло. И без анонимных класов всё мокается.
Ну хорошо, итераторы-то хотя бы в именованные классы не выносите?
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464918
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TНу хорошо, итераторы-то хотя бы в именованные классы не выносите?
А я их и не пишу. Нафига они мне?
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39464943
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczА я их и не пишу. Нафига они мне?
Ну, к примеру, взять какой-нибудь гадкий легаси апи, написать к нему итератор и сверху стримом нахлобучить. А там, глядишь, и лямбды пригодятся.
...
Рейтинг: 0 / 0
Получить доступ к захваченным значениям анонимного класса
    #39465014
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, вот всё и сводится к легаси и кривому дизайну.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Получить доступ к захваченным значениям анонимного класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]