[英]How should I convert Java code to C# code?
我正在將一個Java庫移植到C#。 我正在使用Visual Studio 2008,因此我沒有停用的Microsoft Java語言轉換助手程序(JLCA)。
我的方法是創建一個與Java庫具有類似項目結構的新解決方案,然后將java代碼復制到ac#文件中,並將其逐行轉換為有效的c#。 考慮到我發現Java易於閱讀,兩種語言的細微差別讓我感到驚訝。
有些東西很容易移植(名稱空間,繼承等),但有些東西出乎意料地不同,例如嵌套類中私有成員的可見性,覆蓋虛擬方法和內置類型的行為。 我不完全理解這些事情,我確信還有很多其他的差異,我還沒有看到。
我還有很長的路要走這個項目。 我可以在此轉換過程中應用哪些經驗法則來正確管理語言差異?
你可以用唯一合理的方式做到這一點......最大的幫助就是Dare Obasanjo的這份文件,其中列出了兩種語言之間的差異:
http://www.25hoursaday.com/CsharpVsJava.html
順便說一句,將所有getter和setter方法更改為屬性...除非你想要完美的接口兼容性,否則不需要讓C#庫函數與java庫相同。
如果您有少量代碼,那么逐行轉換可能是最有效的。
如果您有大量代碼,我會考慮:
還有一個快速而又骯臟的想法:您可以使用IKVM將Java jar轉換為.NET程序集,然后使用Reflector - 與FileDisassembler Add-in結合 - 將其反匯編為Visual C#項目。
(順便說一下,我還沒有真正使用過IKVM - 有人關心這個過程會起作用嗎?)
我不確定它是否真的是逐行轉換代碼的最佳方式,特別是如果障礙變得勢不可擋。 當然,Java代碼為您提供了指導和基本結構,但我認為最重要的是庫確實提供了與Java相同的功能。
前幾天我聽到了關於.net版Java的一些事情。 如果這樣的怪物可用,你能將java源代碼編譯成.net中間庫嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.