Вызов функции Java с необязательным аргументом из clojure - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь понять, как использовать LWJGL3 напрямую из clojure. Единственный камень преткновения, который я обнаружил до сих пор, - это функция, которая иногда требует, чтобы аргумент был null, но его тип - long в отпечатке пальца. Определенная рассматриваемая функция - glfwCreateWindow​ из класса org.lwjgl.glfw.GLFW. Последние два аргумента long, но они должны быть null при использовании оконного режима для первого или без разделения контекста gl для второго. Проблема заключается в том, что вызовы взаимодействия проверяют отпечаток функции и видят, что это должно быть long, поэтому передача nil приводит к IllegalArgumentException.

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

Это мой код, который уже работает: https://gist.github.com/Efimero/2c0af4ae3aeaf2c85136aa06ff077919

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

Когда я передаю nil, я хочу, чтобы функция вызывалась нормально, но я получаю исключение.

1 Ответ

2 голосов
/ 09 мая 2019

Это не имеет смысла.A long нигде не может быть нулевым.Похоже, что это ошибочное понимание в документации, где обернутая библиотека C или C ++ просачивается через.

Я бы сильно предположил, что передача 0, где в документации написано NULL, является правильной.

...