Membaca Sumber yang Dibuat

Pemetaan nama class

Karena J2ObjC hanya menerjemahkan class Java non-UI, aplikasi iOS perlu bekerja secara langsung dengan class yang diterjemahkan. Class yang diterjemahkan adalah class Objective-C yang di-root NSObject biasa, tetapi akan membantu memahami cara class, metode, parameter, dan nama file header dikonversi.

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

Nama parameter

Java membedakan metode yang kelebihan beban dengan jenis argumennya, sedangkan Objective-C menggunakan nama argumen. Oleh karena itu, J2ObjC membuat nama argumen dari jenisnya. Misalnya, berikut adalah cara objek disisipkan ke awal ArrayList, dan bagaimana daftar tersebut kemudian ditambahkan ke daftar lain:

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

Setiap nama argumen terdiri dari "dengan" ditambah jenisnya. Ini sedikit tidak baik, tetapi memastikan bahwa metode yang sama selalu dipanggil di Objective-C seperti pada Java.

Nama header

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

#import "java/util/Date.h"

mendeklarasikan class JavaUtilDate, bukan Date.

Menggunakan class yang diterjemahkan

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

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