将C#转换为纯Java?

4
可能重复:
是否有一种有效的工具可以将C#转换为Java? 我对Java不是很熟悉,但我有很多想要转换为Java语法的C#代码,以便可以编译。
原因:Android和Google Cloud
我知道API /平台具有不同的结构,但假设我们不需要100%的兼容性,而只需要将“核心功能”翻译成Java。GUI本身就是一个故事,正如我所学到的那样。但是,与其重新编写每个SWITCH-CASE,重建每个类等等,不如将对象映射到Java equals,然后在Android / Google平台上重新编译。
我确信会有一些无法翻译的内容,因为它是“仅限于C#”的东西 - 但就像每种语言都可以生成.NET / MONO一样,我认为可能也有Java -> .Net的可用工具,因此也有一种反编译工具?
那么,有没有什么简单的方法可以通过框架,SDK或其他类似方法来克服这种翻译,从而自动完成80-95%的任务?

当!为什么我在搜索时没有找到那个...因为我已经找到了。 - BerggreenDK
在提到的线程中还发现了这个:https://net2java.dev.java.net/ - BerggreenDK
3个回答

1

在这里看看:JSC

但是另外,还有一些C#的概念不容易翻译成Java。


https://net2java.dev.java.net/ 看起来也很有趣。 - BerggreenDK

0

.NET和Mono是兼容的,因为它们都是运行C#代码的虚拟机。 Grasshopper声称可以让您在JVM上运行.NET类,但我没有使用过。对于Android来说根本不起作用,因为Android不是JVM,而是Dalvik

C#和Java之间的差异不仅仅是“结构上”的,我认为从一种语言翻译到另一种语言要更加复杂,您可能没有理解这一点。


我并不是说这些语言是完全相等的,但是我们可以尽可能地重用代码,并且关注于那些“最后一点零碎”的部分。因此我们可以用 Java 来编写 20% 的调整代码,剩下的就可以转换了。不过我的观点也可能是错误的。 - BerggreenDK

0

我知道微软有一个工具,据说可以帮助将Java转换为C#,但考虑到许多Java应用程序引用了主系统之外的库(最显著的例子是apache),这种类型的工具将是一项巨大的任务。

C#还有一些在Java中根本不支持的数据类型,比如无符号类型和堆栈分配的对象。从CLR到Java字节码的翻译将会非常困难。如果你的代码中使用了lambda函数,那就别想了。

此外,Java的并非所有语言特性都可用于Davlik JVM。

我并不是微软的粉丝,但下面是两种语言的比较,可以让你了解为什么我怀疑这个工具的存在。

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java


哦,但是我已经学会了一些工具。我不是在谈论100%的解决方案,而只是希望有些东西可以消除大部分无聊的重复工作。例如,自动获取业务逻辑的后端代码或类/结构将是很好的。某个Web服务器的API内容并不是我们要翻译的,因为不同的平台有不同的可能性。但是,如果您将这些调用封装到更通用的业务类中,那么您只需要关注那些与平台相关的内容。 - BerggreenDK
祝你好运,朋友。你考虑过将这个逻辑实现为C#的Web服务,然后只需从客户端应用程序调用所需内容吗?我没有你的详细信息,但这似乎是更快捷的方法。 - avgvstvs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接