[英]Calling a java function with an optionally null argument from clojure
我試圖找出如何直接從clojure使用LWJGL3。 到目前為止,我發現的唯一絆腳石是一個有時需要將參數設為null
的函數,但是它的類型在指紋中很long
。 有關具體功能是glfwCreateWindow
從org.lwjgl.glfw.GLFW
類。 最后兩個參數是long
,但是對於第一個參數,在使用窗口模式時,對於第二個參數,它們應為null
;對於第二個參數,它們不共享gl上下文。 問題是互操作調用檢查該函數的指紋,看它應該是一個long
nil
,因此傳遞nil
導致IllegalArgumentException
。
我四處張望,但似乎沒人能解決這個特殊問題。 這與nil-punning無關,因為參數有時應該為nil。
這是我已經運行的代碼: https : //gist.github.com/Efimero/2c0af4ae3aeaf2c85136aa06ff077919
但這僅適用於默認設置,因為默認零值對我的設置適用,但它們不是抽象的。
當我傳遞nil
我希望正常調用該函數,但是出現異常。
這沒有道理。 long
在任何地方都不能為null。 似乎這是文檔中的溝通不暢,包裝的C或C ++庫從那里泄漏出去。
我強烈猜測在文檔說NULL
地方傳遞0
是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.