قراءة المصادر المنشأة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
ربط اسم الصف
نظرًا لأن J2ObjC لا يترجم سوى فئات Java التي لا تستخدم واجهة المستخدم، فإن تطبيق iOS يحتاج إلى العمل مباشرةً مع
الصفوف المترجمة. الفئات المترجمة هي فئات NSObject ذات جذر عادي من خلال NSObject الجذر، لكنها
يساعد في فهم كيفية تحويل أسماء ملفات العناوين والطريقة والمعلمات والعناوين.
تستخدم Java حزم لتحديد مساحات الاسم، بينما لا يحتوي Objective-C على حزم وبدلاً من ذلك
اصطلاح وضع بادئة مشتركة أمام الفئات ذات الصلة (مثل NSObject وNSString). إلى
الاحتفاظ بمساحات أسماء Java، يتم تعيين أسماء الحزم إلى بادئة بها أحرف جملة. على سبيل المثال:
يتم تعيين java.util.List
تلقائيًا إلى JavaUtilList
. يمكن ضبط هذه البادئة التلقائية بشكل صريح
باستخدام خيارات بادئة الحزمة في j2objc.
أسماء المَعلمات
يميز Java بين الطرق التي تم تحميلها بشكل زائد حسب أنواع الوسيطة الخاصة بها، بينما يستخدم Objective-C الوسيطة.
الأسماء. لذلك، تنشئ J2ObjC أسماء الوسيطات من أنواعها. على سبيل المثال، إليك كيف يمكن
يتم إدراج كائن في بداية ArrayList
، ثم تتم إضافة هذه القائمة إلى قائمة أخرى
:list
[someList addWithInt:0 withId:object];
[otherList addAllWithJavaUtilCollection:somelist];
يتكون اسم كل وسيطة من "with" بالإضافة إلى نوعه. هذا أمر قبيح بعض الشيء، لكنه يضمن نفس
دائمًا في لغة Objective-C كما كان الحال مع Java.
لم يتم ربط أسماء ملفات العناوين، ولكن بدلاً من ذلك، تتضمّن مسار الملف المصدر بلغة Java.
تنتهي بـ "h." بدلاً من " .java". وهذا يجعل الأدوات الداعمة مثل Xcode وجعل
قد تكون مُحيرة بعض الشيء في البداية، لأنّ:
#import "java/util/Date.h"
إلى فئة JavaUtilDate
، وليس Date
.
استخدام الصفوف المترجَمة
بخلاف الأسماء الفردية (التي يمكن تبسيطها باستخدام بادئات الحزم)،
في ما يلي الفئات المترجمة مثل أي فئة أخرى ضمن الهدف ج.
#import "java/util/BitSet.h"
...
JavaUtilBitSet *bitset = [[JavaUtilBitSet alloc] init];
[bitset setWithInt:10 withBOOL:YES];
BOOL b = [bitset getWithInt:10];
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-10-14 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2024-10-14 (حسب التوقيت العالمي المتفَّق عليه)"],[[["J2ObjC translates non-UI Java classes into NSObject-rooted Objective-C classes, mapping Java packages to camel-cased prefixes for Objective-C class names (e.g., `java.util.List` becomes `JavaUtilList`)."],["Objective-C argument names are generated from Java argument types to handle method overloading, resulting in names like `addWithInt` and `addAllWithJavaUtilCollection`."],["Header file names mirror Java source file paths with a \".h\" extension, so importing \"java/util/Date.h\" declares the `JavaUtilDate` class."],["Translated classes are used like typical Objective-C classes, despite the naming conventions, allowing developers to interact with them using standard Objective-C syntax."]]],["Java package names are converted into camel-cased prefixes for Objective-C classes, such as `java.util.List` becoming `JavaUtilList`. Method parameter names are prefixed with \"with\" followed by the parameter's type, like `addWithInt:withId:`. Header files retain the Java source file path, ending with \".h\", for example, `#import \"java/util/Date.h\"`. Translated classes are used as any other Objective-C classes. Package prefixes can be simplified using package prefix options.\n"]]