问题标签 [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.

0 投票
1 回答
261 浏览

interface - 混合定义接口和定义协议

我尝试实现表示算术表达式的接口。该接口将由 java 端使用,但整个逻辑都在 clojure 上。

有:

我尝试将其用作:

但我得到:

为什么 clojure 尝试为 Expression3 调用 ExtendsExpression 的 toTree?我希望对于 Expression3 它将调用 Expression 接口的 toTree 方法。

0 投票
1 回答
614 浏览

kotlin - 使用 Kotlin 函数作为 Java SAM 类型

当从 Java API 调用需要 SAM(单一抽象方法)类型参数的方法时,是否有一致的方法将函数文字强制转换为正确的类型?我发现有时 Kotlin 函数工作得很好,而其他函数似乎没有任何一致性。

我有几个来自 Ratpack API 的示例:

使用 Kotlin 函数字面量调用时ChainAction.handler(String, Handler)效果很好,例如:

类型推断contextratpack.handling.Context?正确的。

另一方面,我正在尝试调用Guice.handler(LaunchConfig, Action<? super ModuleRegistry>, Action<? super Chain>)但无法弄清楚如何让 Kotlin 函数代替第二个参数。这是否归结为使生活变得困难的泛型类型?

也许我期待 Kotlin 做一些它不是为它设计的事情,但第一个例子表明至少有一些SAM 类型的强制是可能的(Kotlin 对 Ratpack 很有趣Handler)。

0 投票
3 回答
1399 浏览

jvm - 如何从 perl6 调用 Java 方法

可悲的是,这不起作用

此代码可在以下链接中找到。这是我能找到的唯一例子

  1. JVM 上的 Rakudo Perl 6(幻灯片)
  2. Perl 6 出现日历:第 3 天 – Rakudo Perl 6 在 JVM
0 投票
2 回答
2166 浏览

nullpointerexception - 为什么 HashMap.get 不返回可为空的类型?

我有点惊讶以下示例抛出NullPointerException

NullPointerException我以为Kotlin 代码中没有s ?

如果我使用可选类型进行注释x,则程序会打印null

我是否发现了一个特殊情况,或者这是 Kotlin/Java 互操作的普遍问题?

我正在使用带有 Kotlin 0.11.91.1 插件的 IntelliJ IDEA 14.1 社区版。

0 投票
2 回答
1935 浏览

reflection - Kotlin:双冒号(反射)运算符

所以我正在使用 VertX Web,试图让它与 Kotlin 一起工作。有一个路由器,你必须说类似

但它不起作用。我究竟做错了什么?当我在 Kotlin 定义的类上使用它时,它的行为正常。是故意的吗?

无论如何,我必须像这样手动完成

0 投票
1 回答
213 浏览

clojure - 在 clojure 中解压缩时保持文件权限

我想从一个可以包含文本、可执行文件的压缩包中解压缩文件。我已经找到了使用 Java 互操作在给定位置解压缩文件内容的方法。

但是,在给定位置解压缩所有内容后,我无法运行可执行文件,因为权限未设置为文件上的可执行文件。

我正在使用 Java API 中的 ZipInputStream 和 BufferedOutputStream 来分别读取和写入。我认为我的代码没有任何问题,因为我可以看到副作用并且文件已按预期解压缩。另外,我检查了文件的权限,并且没有一个可执行文件对其具有 x 权限。

当然,我可以运行 unzip 命令,它应该可以处理所有事情,但我不确定程序将在哪个平台上运行。所以,我想我会以编程方式解压缩所有内容。

我真的可以使用 unzip 命令吗?或者有没有其他推荐的方法?

谢谢。

0 投票
1 回答
909 浏览

java - proxygen 抛出 System.NullReferenceException

我想在我们的 java 应用程序中使用一个 dll 文件,我正在使用 jni4net,当我尝试为我们的 Dll 创建代理时它抛出

0 投票
1 回答
1023 浏览

kotlin - 如何在 Kotlin 中覆盖 java 类的属性?

Java代码中的某处有一个类ViewHolder

itemView因此,在 Kotlin 中,此类的实例包含type的只读属性View。我想创建一个ViewHolder<V>像这样的通用类:

如果我删除override修饰符,则类编译正常,但是当我尝试使用该itemView字段时Overload resolution ambiguity出现错误。

我在这里想要的是使 class 的itemView属性MyViewHolder为 type V,而不是View. 例如,MyViewHolder(TextView(context)).itemView将是一个TextView. 有什么办法可以做到这一点?

0 投票
1 回答
312 浏览

java - 如何向 Java 函数传递 String[] 参数?

我有一个 Java 函数,我想从 Clojure 调用它。具体原型如下:

因此,我需要String[]从 Clojure 函数中传递 a 作为参数。通过以下任何一项:

  • (默认参数[]
  • (默认参数 [""]
  • (默认参数 ^String [])

都产生一个例外:No matching method found: createScript for class BlaBla..

我也看过这个 Java 互操作文档,但我可能遗漏了一些东西。如何从 Clojure 调用此方法?

0 投票
1 回答
94 浏览

java - Clojure:java interop,为什么这段代码不起作用?

我使用 Apache Maths(无论如何)编写了一个类,但我遇到了一个奇怪的故障(或者我的 Java 代码可能有问题?)。

这是代码

Clojure 包装器:

基本上它是一种分布,内部有两种形式的数据:HashMaps 和 Arrays。

在 Clojure 中,我尝试过:

两者都返回 NullPointerException,NativeMethodAccessorImpl..blabla 与 .cumulativeProbabilityMethod 相同(另一方面,.sample 工作正常,因此可能是 HashMap 的问题)

我发现可能在构造函数中 mcp 和 mp (即 HashMaps)没有在构造函数中正确计算,但是当我尝试时:

它返回给我正确的结果。MCP hashmap 实际上是我预期的结果。

那么为什么我的代码不起作用?我的两条线在“功能上”是相同的。如果我打错了,我看不到它。也许是因为不变性?

谢谢 !