gpt4 book ai didi

java - 无法从 Scala 访问 Java 静态方法

转载 作者:行者123 更新时间:2023-12-02 06:24:28 25 4
gpt4 key购买 nike

我遇到了 Scala 和 Java 互操作性问题,Google 和 SO 似乎对此没有帮助(我见过类似的问题,但没有一个为我的案例提供有效的解决方案)。

我已经用 Java 创建了一个 jar 文件(托管 here ,如果您需要它来回答这个问题),其中包含一个具有静态方法的类。但是,我似乎无法从 Scala 访问这个静态方法。代码如下:

val graph1 = ...
val graph2 = ...
val union = DirectedGraph.merge(graph1, graph2)

该方法存在,我可以使用普通的 Java 代码访问它。事实上,以下有效:

DirectedGraph<OWLClass> graph1 = ...;
DirectedGraph<OWLClass> graph2 = ...;
DirectedGraph<OWLClass> union = DirectedGraph.merge(graph1, graph2);

我已经检查过 java 和 scala 使用的 jar 文件是相同的。我还使用 javap 检查该方法是否确实存在。

有没有办法理解并可能解决这个问题?

最佳答案

最可能的原因(根据我的经验)是 Java 编译器将注释视为可选,因此,如果您的依赖项之一使用注释并且不存在包含此注释的依赖项,则编译时不会出现问题。然而,Scala 编译器认为这是一个错误。您可能需要查看 DirectedGraph 源代码及其父类(super class)型。

关于java - 无法从 Scala 访问 Java 静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20689122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com