การอ่านแหล่งที่มาที่สร้าง
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
การแมปชื่อชั้นเรียน
เนื่องจาก J2ObjC แปลเฉพาะคลาส Java ที่ไม่ใช่ UI แอปพลิเคชัน iOS จึงต้องทำงานกับฟังก์ชัน
ชั้นเรียนที่มีการแปล คลาสที่แปลแล้วเป็นคลาส Objective-C รูทของ NSObject ตามปกติ แต่
ช่วยให้เข้าใจว่าระบบแปลงชื่อไฟล์คลาส เมธอด พารามิเตอร์ และส่วนหัวอย่างไร
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" รวมทั้งประเภท แม้จะดูไม่น่าพอใจนัก แต่ก็ต้องมั่นใจว่า
มีการเรียกใช้ใน Objective-C เสมอ เช่นเดียวกับใน Java
ไฟล์ส่วนหัวไม่ได้แมปชื่อ แต่มีเส้นทางไฟล์ที่มา Java แทน
ที่ลงท้ายด้วย ".h" แทนที่จะเป็น ".java" ทำให้เครื่องมือสนับสนุนอย่าง Xcode และ Google ง่ายขึ้นมาก
แต่ก็อาจทำให้สับสนได้เล็กน้อยในช่วงแรก
#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];
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-25 UTC
[[["เข้าใจง่าย","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"]],["อัปเดตล่าสุด 2025-07-25 UTC"],[[["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"]]