我正在尝试将
Java代码转换为Objective-C.下面的课程是.的扩展
TestCodeRequest.想知道如何将其转换为目标C等价物.我发现它有点令人困惑,因为Java是静态类型的,并且配置超过了约定.而Objective-C是动态类型的,而且是约定优于配置.我在下面有一个示例代码.任何小提示都应该非常棒.
TestCodeRequest.想知道如何将其转换为目标C等价物.我发现它有点令人困惑,因为Java是静态类型的,并且配置超过了约定.而Objective-C是动态类型的,而且是约定优于配置.我在下面有一个示例代码.任何小提示都应该非常棒.
package com.TestCode.api; import java.io.IOException; import oauth.signpost.exception.OAuthCommunicationException; import oauth.signpost.exception.OAuthExpectationFailedException; import oauth.signpost.exception.OAuthMessageSignerException; import org.json.JSONObject; public class Categories extends TestCodeRequest { public Categories(String apiKey,String apiSecret) { super(apiKey,apiSecret,"categories"); } public Categories field(Object... fields) { super.field(fields); return this; } public JSONObject getCategories() throws OAuthMessageSignerException,OAuthExpectationFailedException,OAuthCommunicationException,IOException { return this.get(); } public Categories categoriesField(Object... fields) { return this.field(fields); } }
解决方法
有几个很好的Java到Objective C翻译器.对于简单的代码,所有代码都应该有效.翻译人员通常遇到很多麻烦的地方是将调用转换为运行时库,因为他们的理念不同(特别是在外观和用户交互方面).要在这里做得好,他们需要从语法回到语义,这对软件来说非常困难.
你的短语“Java是静态类型的,配置超过约定.而Objective-C是动态类型的,而约定优于配置”不能不参考这个.特别是GUI开发.语言的这一方面并不是它们固有的,而是属于开发人员通常使用的库,在许多情况下依赖于特定的操作系统.因此,我们可能不会将Java转换为Objective C,而是将其从Swing外观和交互模式转换为iOS.
考虑到这一点,我建议您使用自动转换工具作为学习工具.您将看到生成的代码片段(因为它们变得更复杂和/或包含用户界面)即使它们工作,也不适合维护或进一步开发,如果不重新设计则需要重新编码.但同样,作为学习工具,它们非常有用.
> Google J2ObjC
> java2objc
> JCGO这个转换为C.如果目的是让某些东西有效,这可能就足够了.如果目的是学习目标C的全部精彩,那就不是了.