Комментарии 11
… и только совсем непонятно зачем они нужны… В статье об этом ни слова. Или я плохо читал?
+1
Мы используем для улучшения производительности. Создавая Method handle единожды, избегаем постоянных проверок во время вызова, которые есть в java.lang.reflect.Method.
0
Насколько я помню в 8+ java java.lang.reflect.Method (если отключить проверки) немного быстрее methodHandle, к тому же можно пойти дальше и сделать из methodHandle лямбду используя LambdaMetafactory.metafactory что даст еще больше удобства и производительности
0
Да, мы LambdaMetafactory.metafactory
тоже юзаем, генерируем Consumer<T>
на лету — UiControllerReflectionInspector
0
При использовании логирования очень удобно создавать логер следующим образом:
Logger LOGGER = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());
Это избавляет от ошибок при копировании, так как эта строка как правило кочует из класса в класс в неизменном виде
Logger LOGGER = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());
Это избавляет от ошибок при копировании, так как эта строка как правило кочует из класса в класс в неизменном виде
+3
Почему вы не хотите использовать lombok?
0
Часто нужно что-то делать в довольно старых проектах. Стэк используемых технологий в таких проектах утвержден и добавлять что-то еще без веских на то причин нам не разрешают.
0
Ну вообще, в Lombok очень плохо, что нужен плагин для IDE.
0
Потому что это уже есть в Java c 7 версии, а вы говорите о подключении сторонней библиотеки, с которой ещё есть особые правила использования. Это не одно и тоже. Если вы используете Lombok, то и все вокруг «должны» его использовать?
+1
А что по скорости? Такой способ же будет медленнее, чем передвать просто строку?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Что такое Method Handles в Java