Описание тега methodhandle
Используйте этот тег для вопросов, касающихся классов Java MethodHandle/MethodHandles из API java.lang.invoke.
0
ответов
Какая связь между MethodHandles.foldArguments и MethodHandle.asCollector?
Javadoc для MethodHandles.foldArguments содержит это примечание в скобках: (Обратите внимание, что dropArguments можно использовать для удаления любых аргументов, которые комбинатор или цель не желают получать. Если некоторые из входящих аргументов…
09 июл '14 в 17:35
0
ответов
java.lang.NoClassDefFoundError: jdk.nashorn.internal.scripts.JO28P0
Я закончил библиотеку для Java, и я использовал ее для замены java.lang.invoke пакет (т. е. добавьте его в загрузчик классов загрузки перед обычной библиотекой JVM). В пакете он динамически генерирует байт-коды для дескрипторов метода. Спасибо, если…
09 мар '17 в 19:03
4
ответа
Как я могу улучшить производительность Field.set (perhap используя MethodHandles)?
Я пишу код, который вызывает Field.set а также Field.get много много тысяч раз. Очевидно, это очень медленно из-за отражения. Я хочу посмотреть, смогу ли я улучшить производительность, используя MethodHandles в Java7. Пока вот что у меня есть: Вмест…
07 мар '14 в 07:47
2
ответа
Зачем использовать отражение для доступа к членам класса, когда MethodHandle быстрее?
С выпуском Java 7 пришли MethodHandle, который позволяет пользователю вызывать метод, как если бы он использовал свой базовый байт-код. В частности, MethodHandles.Lookup Класс предоставляет фабричные методы для создания дескрипторов методов для дост…
06 июн '15 в 00:28
1
ответ
Кэширование результата MethodHandles.lookup()?
Я работаю в ситуации, когда MethodHandles.Lookup класс используется часто. В этой ситуации целесообразно сохранить ценность MethodHandles.lookup() между несколькими поисками? (В частности, единственный метод поиска, который я использую, это unreflec…
18 сен '14 в 20:28
0
ответов
ScriptEngineManager.getEngineByName("nashorn") завершается ошибкой из-за java.lang.invoke.WrongMethodTypeException
Я не могу создать ScriptEngine за nashorn в Java 8 (IBM J9JVM). В следующем коде двигатель null, private static void runOther(String[] args){ ScriptEngineManager engineManager = new ScriptEngineManager(); ScriptEngine engine = engineManager.getEngin…
11 мар '17 в 01:41
2
ответа
Почему я не могу.invokeExact() здесь, хотя MethodType в порядке?
Для одного из моих проектов я должен сделать динамические вызовы конструктора. Но так как это Java 7, вместо "классического" API отражения, я использую java.lang.invoke. Код: @ParametersAreNonnullByDefault public class PathMatcherProvider { private …
03 дек '14 в 17:48
0
ответов
LinkageError при использовании MethodHandle.publicLookup() в файлах WAR
У нас есть проблема, которую мы не можем объяснить, почему это происходит. возможно, кто-то здесь может нам дать некоторые подсказки, что происходит в этом случае. у нас есть простой репроусер, который показывает проблему package com.example.demo; i…
09 июн '17 в 07:33
1
ответ
Используйте LambdaMetafactory.metafactory() для простого нестатического геттера
У меня простой Person класс с getName() который возвращает String: public class Person { public String getName() {...} } Как я использую LambdaMetafactory создать лямбду для этого нестатического метода getName() во время выполнения? Вот что я получи…
11 янв '18 в 09:14
1
ответ
Объединение MethodHandles.publicLookup() с Method.setAccessible(true)
Я это понимаю publicLookup() быстрее, чем lookup() для публичных методов, и я хотел бы использовать это. Если бы я должен был использовать MethodHandles.publicLookup().unreflect(Method) на Method который по своей сути не является публичным, но я наз…
19 сен '14 в 15:53
3
ответа
MethodHandle производительность
Я написал небольшой тест, который тестирует производительность java.lang.invoke.MethodHandle, java.lang.reflect.Method и прямые вызовы методов. Я прочитал это MethodHandle.invoke() производительность почти такая же, как прямые звонки. Но результаты …
25 мар '13 в 17:50
1
ответ
Получить дескриптор метода для перегруженного метода
Можно ли искать дескриптор метода для перегруженного метода в Java 7?
15 июн '12 в 08:00
2
ответа
Можно ли получить java.lang.reflection.Method непосредственно из файла Constant_Method_REF файла класса java?
Я использую BCEL для преобразования байт-кода метода для достижения перехватчика метода с анонимным стилем внутреннего класса, при перехвате метода мне нужно обработать некоторые аннотации для перехваченного метода. Я использую BCEL для перехвата до…
23 окт '13 в 17:35
2
ответа
Как мне найти конструктор массива MethodHandle с MethodHandles.Lookup?
Как я могу получить MethodHandle для конструктора массива, как int[]::new? Это не работает: public static void main(String[] args) throws Throwable { MethodHandles.Lookup lookup = MethodHandles.publicLookup(); MethodHandle mh = lookup.findConstructo…
18 мар '16 в 02:29
2
ответа
Преобразование MethodType для MethodHandle для принятия параметров Array Object
Я хочу адаптироваться String.startsWith от (String, String)boolean в (String[])booleanтак что он может принимать String[] параметры, в которых первые два параметра будут сопоставлены с (String, String), Поэтому я написал ниже пример кода: MethodHand…
29 янв '15 в 21:41
1
ответ
Почему checkcast-инструкция отсутствует для (int)MethodHandle.invokeExact?
Я создал 2 простых класса для попробовать Java MethodHandle-API: public class Foo { private static int staticField; public static Object getStaticField() { return staticField; } } другой класс для вызова метода Foo.getStaticField() двумя способами -…
20 апр '16 в 12:11
1
ответ
Локальные переменные в MethodHandle
java.lang.invoke.MethodHandle и друзья позволяют генерировать исполняемый код, отвечающий требованиям JIT, с помощью ряда комбинаторов. Как я могу создать локальные переменные в MethodHandles? В идеале метод подписи, который я хочу, выглядит примерн…
14 авг '18 в 23:06
0
ответов
Java 8 Update 51 (sun-jdk-8u51) Неустранимая ошибка времени выполнения после нулевого вызова MethodHandle invokeExact с 448 аргументами System::gc Runnable
Резюме Мне удалось скомпилировать интерфейс с основным методом, который вызывает нулевой метод invokeExact MethodHandle с 448 экземплярами ссылки на метод Runnable (System::gc). Когда я запустил интерфейс, в среде выполнения Java была обнаружена фат…
18 янв '16 в 15:13
2
ответа
MethodHandle Manipulation
Для моей работы с aspectJ и invokedynamic мне нужно вложить совет в метод, когда pointcut соответствует вызываемому методу. Сначала я заменил метод начальной загрузки invokedynamic-инструкции в сценарии своим собственным. Теперь в моем методе началь…
19 дек '12 в 19:27
2
ответа
InvokeExact для объекта, тип которого динамически загружается загрузчиком классов
Я потратил целый день на эту проблему. Моя проблема заключается в том, как сделать метод MethodHandle.invokeExact для экземпляра, тип класса которого динамически загружается во время выполнения программы. Чтобы сделать проблему более ясной, я показы…
14 фев '15 в 02:39