Anotação ObjectiveCName
Você pode anotar qualquer método Java com @ObjectiveCName para alterar o nome traduzido desse método e qualquer método que o modifique. Exemplo:
@ObjectiveCName("setTimeWithHours:minutes:seconds:")
public void setTime(int hours, int minutes, int seconds) {
...
}
é traduzido como:
- (void)setTimeWithHours:(jint)hours
minutes:(jint)minutes
seconds:(jint)seconds;
Arquivo de mapeamento
Os nomes dos métodos podem ser alterados usando a sinalização --mapping, que usa um arquivo de propriedades com os mapeamentos a serem usados. Cada mapeamento de método é definido com a assinatura completa do método Java para a chave e um valor de seletor do Objective-C. Por exemplo, a linha para mapear Object.iguals() para NSObject.isEqual: é:
java.lang.Object.equals(Ljava/lang/Object;)Z = isEqual:
A declaração à esquerda é a assinatura completa do método, conforme definido pela Especificação de máquina virtual Java. A definição à direita consiste no seletor do iOS (ou seja, o que você passaria para @seletor()). O método e o mapeamento dele precisam ter o mesmo número de parâmetros.
Como outro exemplo, esta linha é equivalente ao exemplo da seção anterior:
pkg.ClassName.setTime(III)V = setTimeWithHours:minutes:seconds:
Arquivos de mapeamento adicionais podem ser especificados na linha de comando com a opção --mapping.