为了使开发可移植到Java,在J#和C#上进行整个开发是否有意义?如果缺少Java中存在于C#中的位,如lambda表达式等等,会发生什么?
实现可移植性的最佳方法是什么?
答案 0 :(得分:3)
我肯定不会使用J# - 它不再受支持了,它只支持Java 1.1.4,IIRC。
我个人建议保持两种语言之间整体架构的一致性,然后手动编写代码,同时考虑不同语言中的不同习语。
如果您的代码库使用数据驱动的测试,那么在两种语言之间共享这些数据会很好,这有助于确保数据的可移植性。
答案 1 :(得分:2)
我建议您不再使用J#,因为它已经停止使用。最新版本已随Visual Studio 2005一起提供。
答案 2 :(得分:0)
除了J#特定的语言扩展和.NET CLR支持之外,它的runtime library还实现了Java 2 Collections Framework(尽管没有java.util.concurrent
扩展)甚至一些JFC / Swing,通过Supplemental UI Library。
因此,您将受限于Java 1.4 API。
鉴于J#早已停止使用,我建议你不要花时间投入其中。
如果你真的需要JVM和CLR之间的可移植性,我会看看IKVM(在CLR之上实现Java 1.7 API),Scala for .NET(已停止使用Scala 2.10)或类似语言 Ruby (JRuby / IronRuby)或 Python (Jython / IronPython)。
或者,您可以生成您的C#for .NET - 这是Java到C#converters available。