问题标签 [clojure-java-interop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macros - 因子 Clojure 代码使用绑定到 var 或 local 的参数映射在 Java 对象中设置许多不同的字段
我想在 Clojure 的 Java 对象中设置一组字段,而不在运行时使用反射。
这个解决方案(从其中一个解决方案复制而来)接近我所追求的:
这工作正常,但我希望宏能够处理作为 var 或作为本地绑定传入的字段和值的映射(即不直接传递给上述宏)。这些字段应表示为关键字,因此以下内容应有效:
我无法弄清楚如何使用 set 来做到这一点!以及宏中的特殊点形式(或任何在运行时不使用反射的如上工作的解决方案)。
clojure - clojure java互操作和接口
我在使用 Clojure 的 Java 接口时遇到问题。
我有以下课程:公共课 OpenAccess
其中有一个方法:静态连接连接(字符串网址)
其中 Connection 是一个接口:公共接口 Connection
在Java中,我会这样做来建立一个连接:
我从 Clojure 尝试了以下操作,但它不起作用:
它出现“IllegalArgumentException 未找到匹配方法:为类访问连接。OpenAccess”错误
我不知道如何从 Clojure 正确执行 Java 接口。
java - Clojure - Java 互操作:传递一个 OutputStream 参数并返回一个字符串
我正在使用一个 java 库并想调用一个导出数据的方法。
此方法有两种变体:一种带有用作目标文件名的 String 参数,另一种接受 OutputStream 对象并使用 OutputStreamWriter 写入它。
我想使用第二种方法,并且能够将 OutputStream 恢复为字符串,这样我就可以用它做任何我想做的事情。
我不确定实际上是否可行,但是当我发现 clojure.core/with-out-str 时,我希望它是可能的,但是我不确定如何使用它。
是否可以从 Clojure 将 OutputStream 参数传递给 Java 方法并将写入的数据作为字符串取回?
谢谢。
编辑:
实际上,类构造函数接受一个 OutputStream 参数,一个方法通过它写入并关闭它。希望这可以帮助。
clojure - Clojure deftype with Type Hints?:找不到匹配方法,留下自动匹配的提示
我得到一个IllegalArgumentException: Can't find matching method: render, leave off hints for auto match
,但我需要类型提示来重载该方法。我错过了什么……?
clojure - Clojure:是否可以调用 java 的包保护方法?
我找不到任何关于此的文档(或博客)。是否可以从 clojure 调用包保护方法?我们有一个庞大的 Java 代码库,我正在考虑是否可以开始围绕它们开发一些 clojure 库。
我尝试使名称空间与 java 中的包的名称空间相同,但找不到方法(静态)。
java - 如何声明一个 Clojure 函数并立即使用 clojure-utils 从 Java 代码运行?
我想声明一个 Clojure 函数并立即使用 clojure-utils 在 Java 代码中对其进行评估。这个怎么做?
我正在使用的代码是这样的:
如果我只是在字符串变量中使用以下表达式s
,它将正常工作:
(list* (map #(/ % 2) '(1 2 3 4 5)))
Java 编译器将显示:
=> (1/2 1 3/2 2 5/2)
但是,如果我尝试同时声明我的函数,然后尝试从代码中调用它,如下所示:
编译器只会显示:
更新:我写了这个结构,很糟糕,但它有效:
结果:
=> (1/2 1 3/2 2 5/2)
更新 2(固定):
clojure - Calling java parent method from Clojure
Say I have a java library with the following pseudo code :
I want to use this from Clojure.
I have an instance of A, and I want to invoke method2 without going through Reflection methods.
What's the quickest way ?
android - 无法访问 getSystemService
我正在尝试调用getSystemService
(method of Activity
) 来访问传感器,但看起来它不存在。
这是我尝试过的代码:
我什至检查了a
with的所有方法
有getSystemService
一个清单。但不知何故我不能称之为:Clojure 说没有这样的方法。
更新: getSystemService
不是静态方法,所以这就是原因,我猜。
但是,有没有办法?
android - 将类转换为 SensorEventListener
我正在尝试注册SensorEventListener
,但我的听众类型错误。
这是我尝试过的:
看起来我需要投到listener
,SensorEventListener
对吧?
我怎样才能做到这一点?
java - 在 clojure 中,assocEx 是做什么用的?
我正在实现一个自定义数据结构,出于所有意图和目的,它是一个排序的地图。我想对其进行编程,以便在涉及映射时可以使用 clojure 的所有抽象,例如assoc
、count
等。为了做到这一点,我需要将 clojure 的clojure.lang.IPersistentMap
协议扩展到我的新排序映射类型。
我的问题是:它的作用是什么assocEx
,或者它的目的是什么?在普通的 clojure 映射上调用它表明它不同于assoc
如果您尝试在映射中已存在键的位置插入键/值对,则会引发异常:
这与 不同assoc
,后者只是将地图中的旧值替换为新值:
但是我似乎找不到显示此功能的“clojure”功能(上面未使用互操作表单/强制转换的功能)。使用普通的 clojure 抽象函数,我们在哪里可以看到这个函数的效果assoc
?