Я хочу разрешить JavaScript регистрировать события с использованием синтаксиса, подобного
object.on('eventName', (event) => {
event.something();
});
Объект event
предоставляет различные методы в зависимости от того, что такое 'eventName'
(в зависимости от того, какой тип событияхотел бы добавить обработчик для).
Мне нужно будет создать хост-объекты для object
и для event
, я предполагаю, что класс, необходимый для object
, должен будет выглядеть примерно как
public class Events {
public void on(String eventName, X<FirstEvent> event) {
// ...
}
public void on(String eventName, X<SecondEvent> event) {
// ...
}
}
Если есть два типа событий.
Но я не знаю, как заставить graalvm автоматически выбрать правильный on
метод, и я не знаю, какой типиспользовать для второго аргумента (это должна быть анонимная функция JavaScript, которая принимает один аргумент определенного типа и должна быть позже запущена моим кодом Java).
Как сохранить анонимную функцию JavaScript
(event) => {
event.something();
}
как своего рода Java Runnable, и убедитесь, что GraalVM знает, какой метод on
использовать в зависимости от значения первого строкового аргумента (поскольку передаваемые объекты event
будут отличаться для(разные события).
Я думаю, что это может быть очень сложный вопрос, я считаю это сложно правильно сформулировать.
Я хотел бы создать способ JavaScript для регистрации событияобработчики, которые являются функциями, которые будут вызываться позднее с определенными аргументами.