我目前正在评估将大型Java/Swing应用程序移植到Kotlin。该应用程序的领域是二维图形,图形,图形编辑和模拟/动画。我想重写Kotlin中的整个应用程序核心,并将其转换为Java字节码以及JavaScript。我目前能够编写Kotlin绘图代码,使用一些适配器和桥接类在Java窗口和HTML画布中呈现这些代码。到现在为止还挺好。如何使用依赖于Kotlin的JavaScript进行依赖注入?
现在我正在努力使用依赖注入,我在应用程序中密切使用它。我想在我的Kotlin类中注入依赖,并且仍然能够将它们转换为JVM和JavaScript,所以我寻找了Kotlin的DI框架。我发现injekt和kodein,但看起来它们都依赖于JDK类,所以它们不适用于我的JavaScript用例。因此,我开始开发自己的纯Kotlin DI框架,直到我意识到JavaScript的Kotlin转换器还不支持反射,没有它,您不能进行依赖注入。
是否有人知道JetBrains计划在不久的将来支持JavaScript转译器中的反射?或者是否有人知道另一种编写使用依赖注入的纯Kotlin代码的方法,并且仍然可以将其转换为Java和JavaScript?这个问题可能会成为我的项目的Kotlin展示瓶塞,因为我不确定是否要回到静态可配置工厂。
非常感谢您的精心解答,Alexey!关于JS反射的观点你完全正确。直到现在我还没有意识到他们。所以我会按照你的建议去使用“穷人的DI”(或者“Pure DI”),直到有人可能会根据你未来的编译器插件提供一个DI容器。祝你好运,试图说服你的团队伙伴关于你的元编程方法。感谢您在JetBrains的工作!在担任Java程序员20年之后,我现在喜欢Kotlin的编程,而我不想回去.. – andreasfl