8 votes

Convertir Java en Objective C

J'essaie de convertir un code Java en Objective-C. La classe ci-dessous est l'extension de TestCodeRequest. Je me demande comment la convertir en un équivalent Objective-C. Je trouve cela un peu déroutant parce que Java est typée statiquement, et que la configuration prime sur la convention. Tandis que l'Objective-C est dynamiquement typé, et la convention prime sur la configuration. J'ai un exemple de code ci-dessous. Tout petit conseil serait le bienvenu.

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);
    }

}

16voto

Mario Rossi Points 4527

Il existe plusieurs bons traducteurs de Java vers Objective C. Pour le code que simples, ils devraient tous fonctionner. Les traducteurs ont généralement beaucoup de mal à traduire les appels aux bibliothèques d'exécution en raison de leurs philosophies divergentes (en particulier dans le domaine de l'apparence et de l'interaction avec l'utilisateur). Pour faire du bon travail, ils doivent passer de la syntaxe à la sémantique, ce qui est extrêmement difficile à faire pour un logiciel.

Votre phrase "Java est typée statiquement, et la configuration prime sur la convention. Tandis que l'Objective-C est dynamiquement typé, et la convention prime sur la configuration" ne peut que faire référence à cela. Plus précisément au développement d'interfaces graphiques. Cet aspect des langages n'est pas intrinsèque à ceux-ci, mais appartient aux bibliothèques que les développeurs utilisent habituellement, et qui dépendent souvent de systèmes d'exploitation spécifiques. Ainsi, il ne s'agit probablement pas tant de convertir Java en Objective C que de passer d'une apparence et d'un mode d'interaction Swing à un mode iOS.

Tout bien considéré, je vous recommande d'utiliser les outils de conversion automatique comme des outils d'apprentissage. Vous verrez que les morceaux de code générés (au fur et à mesure qu'ils deviennent plus complexes et/ou intègrent des interfaces utilisateur), même s'ils fonctionnent, ne sont pas adaptés à la maintenance ou au développement ultérieur et doivent être recodés, si ce n'est repensés. Mais encore une fois, en tant qu'outils d'apprentissage, ils sont très utiles.

  • Google J2ObjC
  • java2objc
  • JCGO Celui-ci convertit en C. Si le but est d'avoir quelque chose qui fonctionne, cela peut suffire. Pas si le but est d'apprendre l'Objectif C dans toute sa splendeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X