【问题标题】:Is it possible to create library for Java & JavaScript/TypeScript是否可以为 Java & JavaScript/TypeScript 创建库
【发布时间】:2021-08-03 11:26:45
【问题描述】:

我是 Angular 开发者。

在我们的前后都有一些神奇的计算方法。

类相同,但是当有人发现计算错误时需要在两个不同的项目中修复它。 也许有一种方法可以创建一个通用代码库(maby 函数),可以转换为 js(或 ts)和 java,并根据获得的两个结果更新两个库

【问题讨论】:

  • 你可以在JS中实现它,然后Java可以调用JS代码。这样两者都可以使用相同的代码。但是......我不确定为什么你有两个实现开始。通常情况正好相反——前端不进行计算。后端处理它,前端只发送请求以获取值。这样你就有了 1. 单一的事实来源。 2. 客户端的计算没有人可以摆弄 3. 你确保结果的准确性没有差异,因为JS没有整数除法或类似的小东西。
  • 需要快速获取计算值,因为我尝试在不调用 REST API 的情况下搜索解决方案,但谢谢

标签: javascript java typescript maven npm


【解决方案1】:

你可以尝试使用 kotlin。

Kotlin transpiles to JavaScriptcompiles to java bytecode

但是,如果您想在 java 和 ts/js 代码中使用代码,则只能访问 kotlin 实用程序,而不能访问 java 或 JS/TS 类型,但可以使用 the kotlin stdlib

但如果真的只是计算,你可能不需要 java/js 特定的类/函数。

但是,正如 cmets 中提到的VLAZ,您应该考虑只在后端进行一次计算。

在 IntelliJ 中设置

您可以通过在 New Project 窗口中选择 Kotlin 并使用项目模板 Library 在 IntelliJ 中创建这样的项目。

确保您有目标 commonjvmjs。因为你没有说你会做原生的东西,所以你不需要native 目标。

然后,您可以在 JavaScript(例如 Angular)和 Java 项目中使用 kotlin 库作为依赖项。

从 Java 项目中,您可以引用 KOTLIN_PROJECT/build/classes/kotlin/jvm/main(此目录包含已编译的 Java 类)。

在 JavaScript(例如 Angular)项目中,您可以引用 KOTLIN_PROJECT/build/js/packages/kotlinToJavaAndJS

作为概念证明,我制作了this repository on GitHub

【讨论】:

    猜你喜欢
    • 2019-01-27
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多