将Scala API编写为Java API上的包装器的指南

将Scala API编写为Java API上的包装器的指南,java,scala,Java,Scala,我有一个带有丰富api的java产品。我想将scalaapi作为这些javaapi的包装器来编写。是否有相同的指导方针。请分享您的经验正如其他人所指出的,这是一个非常模糊的问题,但我想有一些广泛的建议: 用于将Java集合转换为Scala集合 使用Scala注释来表示Java中通过其他方式表示的属性或特征。这些示例包括@弃用,@抛出,以及@BeanProperty@BeanProperty特别有用,如果您想使用一个特别需要JavaBeans(即符合规范)的库 如果Java代码使用Spring,

我有一个带有丰富api的java产品。我想将scalaapi作为这些javaapi的包装器来编写。是否有相同的指导方针。请分享您的经验

正如其他人所指出的,这是一个非常模糊的问题,但我想有一些广泛的建议:

  • 用于将Java集合转换为Scala集合
  • 使用Scala注释来表示Java中通过其他方式表示的属性或特征。这些示例包括
    @弃用
    @抛出
    ,以及
    @BeanProperty
    @BeanProperty
    特别有用,如果您想使用一个特别需要JavaBeans(即符合规范)的库
  • 如果Java代码使用Spring,可能会在必要时进行研究。或者使用更多的构造函数参数。或
    asInstanceOf
    来强制转换从上下文手动获取的任何bean
  • 构建文件。也许您想用SBT替换任何特定于Java的构建机制。或者将以Java为中心的Gradle构建文件转换为更加以Scala为中心的文件。那种事

这就是我所能想到的。希望其他人会指出我遗漏的其他注意事项。

你可能想看看皮条客/丰富我的图书馆的方法:你没有接受你之前提出的问题的答案……这个问题太模糊了。为Java库编写Scala包装器的原因和在Scala中编写库的原因一样多。您想完成什么?也许您提供了一些API示例来了解您想要包装的内容?请随意更改名称以保护无辜者……考虑到Scala在JVM中运行,为什么需要额外的API?