簡體   English   中英

使用Java中的named / default args調用Clojure函數的最佳方法

[英]Best way to call Clojure function with named/default args from Java

從Java調用Clojure函數時,為函數指定命名參數的最佳方法是什么?

我有以下功能:

(defn myFn [a b & {:keys [c d] :or {c 1 d 2}}]
   ; do something
   )

我目前用Java來調用它,如下所示:

IFn myFn = Clojure.var("my.namespace", "myFn");
myFn.invoke(5, 6, Clojure.read(":c"), 7, Clojure.read(":d"), 8);

我發現Clojure.read...以上語句的部分內容詳細。 是否有更簡單的方式來撥打電話?

問題不是如何傳遞命名參數,而是如何在Java代碼中創建關鍵字:

import clojure.lang.Keyword;
// others omitted...
myFn.invoke(5, 6, Keyword.find("c"), 7, Keyword.find("d"), 8);

對於任務來說, Clojure.read會被認為太麻煩,而且任何代碼都可以讀取它太危險。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM