问题标签 [language-interoperability]

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 投票
4 回答
14524 浏览

scala - 如何从 java.util.Map 转换为 Scala Map

Java API 返回一个java.util.Map<java.lang.String,java.lang.Boolean>;。我想把它放到一个Map[String,Boolean]

所以想象我们有:

你不能这样做Map.empty ++ javaMap,因为 ++ 方法不知道 Java 映射。我试过了:

和:

由于泛型,这些都无法编译 -java.lang.String与 scala String 不同。

除了手动复制地图之外,有没有一种好的方法可以做到这一点?

编辑:谢谢,所有好的答案,我从他们所有人那里学到了很多。但是,我在这里发布了一个比我实际遇到的问题更简单的问题,这是一个错误。所以,如果你允许我,我会概括这个问题 - API 实际返回的是

我需要把它移到 Map[String, Map[SomeJavaEnum,String]]

它可能看起来不太复杂,但它增加了额外的类型擦除级别,我发现将它移动到 Scala 映射的唯一方法是深度复制它(使用您在下面建议的一些技术) . 任何人有任何提示?我通过为我的确切类型定义一个隐式转换来解决我的问题,所以至少丑陋隐藏在它自己的特征中,但仍然感觉有点笨拙的深度复制很多。

0 投票
13 回答
129860 浏览

python - 从 MATLAB 调用 Python 函数

我需要从 MATLAB 调用 Python 函数。我怎样才能做到这一点?

0 投票
1 回答
335 浏览

inheritance - 实现不安全的 Java 接口

我最近在使用 Spring Security 进行开发时遇到了一个问题。它有一个GrantedAuthority带有以下签名的接口:

而对于 Java 1.5 及更高版本,该接口Comparable采用类型参数T,在 Spring Security 库中省略了该参数(显然是为了兼容 JVM 1.4)。

所以我试图GrantedAuthority在 Scala 中实现。

它不编译:

如何在 Scala 中实现这样的接口?

0 投票
9 回答
51320 浏览

python - 在python中嵌入bash

我正在编写 Python 脚本,但时间不多了。我需要在 bash 中做一些我非常熟悉的事情,所以我只是想知道如何将一些 bash 行嵌入到 Python 脚本中。

谢谢

0 投票
3 回答
406 浏览

architecture - 语言互操作性的最佳实践是什么?

在需要使用多种语言的系统中,当代码调用另一种语言的代码时,确保松散耦合架构的最佳实践是什么?

0 投票
1 回答
752 浏览

java - 从 Scala(和 Java)访问 DRb 对象(例如 Ruby 队列)的最佳方式是什么?

我使用 Ruby 非常简单的 Queue 类构建了各种小脚本,并使用 DRb 在 Ruby 和 JRuby 进程之间共享 Queue。如果能够使用 JRuby 从 Scala(可能还有 Java)访问这些内容,那就太好了。

我已经将 Scala 和 JSR-223 接口放在一起来访问 jruby-complete.jar。

(它大致符合 java.util.Queue 接口,但我没有声明接口,因为它没有实现 element 和 peek 方法,因为 Ruby 类不提供它们。)

问题在于类型转换。JRuby 对 Scala 的字符串很好——因为它们是 Java 字符串。但是,如果我给它一个 Scala Int 或 Long,或者其他 Scala 类型之一(List、Set、RichString、Array、Symbol)或其他一些自定义类型。

这似乎是不必要的 hacky:肯定必须有更好的方法来进行 RMI/DRb 互操作,而不必使用 JSR-223 API。我可以让 offer 方法将对象序列化为 JSON 字符串,并采用仅具有 toJson 方法的对象的结构类型。然后我可以编写一个 Ruby 包装类(或只是 monkeypatch 队列)来解析 JSON。

继续尝试从 Java/Scala 访问 DRb 有什么意义吗?安装真正的消息队列会更容易吗?(如果是这样,对基于 JVM 的轻量级 MQ 有什么建议吗?)

0 投票
2 回答
163 浏览

perl - 与 Perl 代码的自动交互

我想知道是否有任何方法可以自动与 Perl 5 代码交互,而无需创建显式 API 并通过某种协议发布它。我不想将这个问题限制在实现这一目标的任何特定方式上——我正在寻找任何想法。

例如,可以通过 JRuby 从基于 JVM 的语言访问 Ruby;本机编译的语言通常可以通过该平台的本机共享库/标准调用约定访问;其他人可以从代码中自动生成界面... Perl 有哪些选项?

0 投票
3 回答
680 浏览

enums - 跨多种语言统一枚举

我有一个大型项目,其中包含多种语言的组件,每种语言都依赖于一些相同的枚举值。您提出了哪些解决方案来统一多种任意语言的枚举?我能想到一些,但我正在寻找最佳解决方案。

(在我的实现中,我使用的是 Php、Java、Javascript 和 SQL。)

0 投票
4 回答
1823 浏览

c# - 与 php 和 java 互操作的 C# dll

我需要用 C sharp 创建一个 dll,它可以与 php 和 Tomcat/Java webservices 互操作。

普通的 C# 类库会帮助我吗?

谢谢,约翰

0 投票
6 回答
44474 浏览

.net - What is marshalling? What is happening when something is "marshalled?"

I know this question has been asked, at least here.

But there wasn't a satisfactory answer, at least not to me. There is a lot of talk about marshalling as regards interoperating with unmanaged code, but what about marshalling from one thread to another, as we have to do in .NET sometimes.

This makes me ask, what is marshalling, really? When you give a definition of marshalling, how would you define it so that it is explaining the case of interoperability, as well as the cases where you are "marshalling" between threads?