讀取產生的來源

類別名稱對應

由於 J2ObjC 只會轉譯非 UI 的 Java 類別,因此 iOS 應用程式必須與 使用經過翻譯的類別轉譯的類別屬於一般 NSObject 根層級的 Objective-C 類別 將協助您瞭解類別、方法、參數和標頭檔案名稱的轉換方式。

Java 使用套件來定義命名空間,而 Objective-C 沒有套件,而是 將共用前置字串加到相關類別 (例如 NSObject 和 NSString) 的前方。目的地: 會保留 Java 命名空間、套件名稱會對應至採用駝峰式大小寫的前置字串。例如: 根據預設,java.util.List 會對應至 JavaUtilList。您可以明確設定這個預設前置字串 使用 j2objc 的套件前置字串選項

參數名稱

Java 會根據引數型別來區分超載方法,Objective-C 則使用引數 。因此,J2ObjC 會根據其型別建立引數名稱。舉個例子 物件會插入 ArrayList 的開頭,接著如何新增至另一個物件 清單:

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

每個引數名稱均包含「with」加上它的類型這有點醜,但也確保 方法,將一律像 Java 一樣在 Objective-C 中叫用。

標頭名稱

標頭檔案的名稱並未對應,而是 Java 來源檔案路徑 結尾為「.h」而不是「.java」。這讓 Xcode 等支援工具變得更容易 但一開始可能會令人困惑,因為:

#import "java/util/Date.h"

宣告 JavaUtilDate 類別,而非 Date

使用已翻譯的類別

除了奇數名稱 (可使用套件前置字串加以簡化) 之外, 翻譯類別的使用方式與其他 Objective-C 類別相同:

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