Membaca Sumber yang Dibuat

Pemetaan nama kelas

Karena J2ObjC hanya menerjemahkan kelas Java non-UI, aplikasi iOS harus langsung bekerja dengan class yang telah diterjemahkan. Kelas terjemahan adalah kelas Objective-C yang di-root NSObject biasa, tetapi membantu memahami bagaimana nama file class, metode, parameter, dan header dikonversi.

Java menggunakan paket untuk menentukan namespace, sedangkan Objective-C tidak memiliki paket dan sebagai gantinya mengenai penempatan awalan bersama di depan class terkait (seperti NSObject dan NSString). Kepada mempertahankan namespace Java, nama paket dipetakan ke awalan camel-case. Misalnya, java.util.List dipetakan secara default ke JavaUtilList. Awalan default ini dapat disetel secara eksplisit menggunakan opsi awalan paket j2objc.

Nama parameter

Java membedakan metode yang kelebihan beban berdasarkan jenis argumennya, sementara Objective-C menggunakan argumen nama. Oleh karena itu J2ObjC membuat nama argumen dari tipenya. Sebagai contoh, berikut ini adalah cara objek dimasukkan ke dalam awal ArrayList, lalu cara daftar tersebut ditambahkan ke elemen lain daftar:

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

Setiap nama argumen terdiri dari "with" beserta jenisnya. Agak jelek, tapi memastikan bahwa hal yang sama selalu dipanggil di Objective-C seperti halnya dengan Java.

Nama header

Namun, file header tidak memiliki namanya yang dipetakan, melainkan memiliki jalur file sumber Java diakhiri dengan ".h" bukan ".java". Hal ini membuat alat pendukung seperti Xcode dan Make lebih mudah, tetapi pada awalnya bisa sedikit membingungkan, karena:

#import "java/util/Date.h"

mendeklarasikan class JavaUtilDate, bukan Date.

Menggunakan kelas yang diterjemahkan

Selain nama yang ganjil (yang dapat disederhanakan dengan awalan paket), yang diterjemahkan digunakan seperti kelas Objective-C lainnya:

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