जनरेट किए गए स्रोत पढ़ना

क्लास के नाम को मैप करना

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];

हर आर्ग्युमेंट के नाम में, "के साथ" और उसका प्रकार शामिल होता है. यह कुछ भयानक नहीं है, लेकिन इससे यह पक्का होता है कि उसी मकसद को Objective-C में हमेशा लागू किया जाता है जो Java में किया गया था.

हेडर के नाम

हालांकि, हेडर फ़ाइलों में उनके नाम मैप नहीं किए जाते हैं, लेकिन उनके बजाय ".java" के बजाय ".h" पर खत्म होने वाली Java सोर्स फ़ाइल पाथ होता है. इससे, Xcode और कई टूल को इस्तेमाल करना आसान हो जाता है. हालांकि, शुरुआत में यह काम थोड़ा मुश्किल हो सकता है, क्योंकि:

#import "java/util/Date.h"

Date के बजाय, JavaUtilDate क्लास के बारे में बताता है.

अनुवाद की गई कक्षाओं का इस्तेमाल करना

विषम नामों के अलावा (इन्हें पैकेज प्रीफ़िक्स से आसान बनाया जा सकता है), अनुवाद की गई क्लास का इस्तेमाल किसी अन्य Objective-C क्लास की तरह किया जाता है:

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