Como ler origens geradas

Mapeamento de nome da classe

Como o J2ObjC somente traduz classes Java não UI, um aplicativo iOS precisa trabalhar diretamente com o de aulas traduzidas. As classes traduzidas são classes regulares de Objective-C enraizadas com NSObject, mas ajuda a entender como os nomes de arquivos de classe, método, parâmetro e cabeçalho são convertidos.

O Java usa pacotes para definir namespaces, enquanto o Objective-C não tem pacotes e, em vez disso, de colocar um prefixo compartilhado na frente de classes relacionadas (como NSObject e NSString). Para preservar namespaces Java, os nomes dos pacotes são mapeados para um prefixo CamelCase. Por exemplo: java.util.List é mapeado por padrão para JavaUtilList. Esse prefixo padrão pode ser definido explicitamente usando as opções de prefixo de pacote do j2objc.

Nomes de parâmetros

Java diferencia métodos sobrecarregados por seus tipos de argumento, enquanto Objective-C usa argumentos nomes de domínio. Portanto, J2ObjC cria nomes de argumentos com base nos respectivos tipos. Por exemplo, veja como um é inserido no início de uma ArrayList e como essa lista é adicionada a outro lista:

[someList addWithInt:0 withId:object];
[otherList addAllWithJavaUtilCollection:somelist];

Cada nome de argumento consiste em "com" mais seu tipo. Isso é um pouco ruim, mas garante que as mesmas é sempre invocado no Objective-C como era com Java.

Nomes dos cabeçalhos

No entanto, os nomes dos arquivos de cabeçalho não têm os nomes mapeados, mas têm o caminho do arquivo de origem Java e termina com ".h" em vez de ".java". Isso facilita muito ferramentas de suporte como Xcode e Make, mas pode ser um pouco confuso no início, já que:

#import "java/util/Date.h"

declara a classe JavaUtilDate, não Date.

Como usar classes traduzidas

Além dos nomes ímpares (que podem ser simplificados com prefixos de pacote), As classes traduzidas são usadas como qualquer outra classe Objective-C:

#import "java/util/BitSet.h"
...
  JavaUtilBitSet *bitset = [[JavaUtilBitSet alloc] init];
  [bitset setWithInt:10 withBOOL:YES];
  BOOL b = [bitset getWithInt:10];