问题标签 [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.
interface - 混合定义接口和定义协议
我尝试实现表示算术表达式的接口。该接口将由 java 端使用,但整个逻辑都在 clojure 上。
有:
我尝试将其用作:
但我得到:
为什么 clojure 尝试为 Expression3 调用 ExtendsExpression 的 toTree?我希望对于 Expression3 它将调用 Expression 接口的 toTree 方法。
kotlin - 使用 Kotlin 函数作为 Java SAM 类型
当从 Java API 调用需要 SAM(单一抽象方法)类型参数的方法时,是否有一致的方法将函数文字强制转换为正确的类型?我发现有时 Kotlin 函数工作得很好,而其他函数似乎没有任何一致性。
我有几个来自 Ratpack API 的示例:
使用 Kotlin 函数字面量调用时ChainAction.handler(String, Handler)
效果很好,例如:
类型推断context
是ratpack.handling.Context?
正确的。
另一方面,我正在尝试调用Guice.handler(LaunchConfig, Action<? super ModuleRegistry>, Action<? super Chain>)
但无法弄清楚如何让 Kotlin 函数代替第二个参数。这是否归结为使生活变得困难的泛型类型?
也许我期待 Kotlin 做一些它不是为它设计的事情,但第一个例子表明至少有一些SAM 类型的强制是可能的(Kotlin 对 Ratpack 很有趣Handler
)。
jvm - 如何从 perl6 调用 Java 方法
可悲的是,这不起作用
此代码可在以下链接中找到。这是我能找到的唯一例子
nullpointerexception - 为什么 HashMap.get 不返回可为空的类型?
我有点惊讶以下示例抛出NullPointerException
:
NullPointerException
我以为Kotlin 代码中没有s ?
如果我使用可选类型进行注释x
,则程序会打印null
:
我是否发现了一个特殊情况,或者这是 Kotlin/Java 互操作的普遍问题?
我正在使用带有 Kotlin 0.11.91.1 插件的 IntelliJ IDEA 14.1 社区版。
reflection - Kotlin:双冒号(反射)运算符
所以我正在使用 VertX Web,试图让它与 Kotlin 一起工作。有一个路由器,你必须说类似
但它不起作用。我究竟做错了什么?当我在 Kotlin 定义的类上使用它时,它的行为正常。是故意的吗?
无论如何,我必须像这样手动完成
clojure - 在 clojure 中解压缩时保持文件权限
我想从一个可以包含文本、可执行文件的压缩包中解压缩文件。我已经找到了使用 Java 互操作在给定位置解压缩文件内容的方法。
但是,在给定位置解压缩所有内容后,我无法运行可执行文件,因为权限未设置为文件上的可执行文件。
我正在使用 Java API 中的 ZipInputStream 和 BufferedOutputStream 来分别读取和写入。我认为我的代码没有任何问题,因为我可以看到副作用并且文件已按预期解压缩。另外,我检查了文件的权限,并且没有一个可执行文件对其具有 x 权限。
当然,我可以运行 unzip 命令,它应该可以处理所有事情,但我不确定程序将在哪个平台上运行。所以,我想我会以编程方式解压缩所有内容。
我真的可以使用 unzip 命令吗?或者有没有其他推荐的方法?
谢谢。
java - proxygen 抛出 System.NullReferenceException
我想在我们的 java 应用程序中使用一个 dll 文件,我正在使用 jni4net,当我尝试为我们的 Dll 创建代理时它抛出
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
. 有什么办法可以做到这一点?
java - 如何向 Java 函数传递 String[] 参数?
我有一个 Java 函数,我想从 Clojure 调用它。具体原型如下:
因此,我需要String[]
从 Clojure 函数中传递 a 作为参数。通过以下任何一项:
- (默认参数
[]
) - (默认参数
[""]
) - (默认参数 ^String [])
都产生一个例外:No matching method found: createScript for class BlaBla..
我也看过这个 Java 互操作文档,但我可能遗漏了一些东西。如何从 Clojure 调用此方法?
java - Clojure:java interop,为什么这段代码不起作用?
我使用 Apache Maths(无论如何)编写了一个类,但我遇到了一个奇怪的故障(或者我的 Java 代码可能有问题?)。
这是代码
Clojure 包装器:
基本上它是一种分布,内部有两种形式的数据:HashMaps 和 Arrays。
在 Clojure 中,我尝试过:
两者都返回 NullPointerException,NativeMethodAccessorImpl..blabla 与 .cumulativeProbabilityMethod 相同(另一方面,.sample 工作正常,因此可能是 HashMap 的问题)
我发现可能在构造函数中 mcp 和 mp (即 HashMaps)没有在构造函数中正确计算,但是当我尝试时:
它返回给我正确的结果。MCP hashmap 实际上是我预期的结果。
那么为什么我的代码不起作用?我的两条线在“功能上”是相同的。如果我打错了,我看不到它。也许是因为不变性?
谢谢 !