การเปลี่ยนชื่อเมธอด

คำอธิบายประกอบ ObjectiveCName

คุณใส่คำอธิบายประกอบในเมธอด Java ด้วย @ObjectiveCName เพื่อเปลี่ยนชื่อที่แปลแล้วของเมธอดนั้นและเมธอดที่ลบล้างเมธอดนั้น เช่น

@ObjectiveCName("setTimeWithHours:minutes:seconds:")
public void setTime(int hours, int minutes, int seconds) {
  ...
}

จะแปลเป็น:

- (void)setTimeWithHours:(jint)hours
                 minutes:(jint)minutes
                 seconds:(jint)seconds;

ไฟล์การแมป

ชื่อเมธอดเปลี่ยนแปลงได้โดยใช้แฟล็ก --mapping ซึ่งจะนำไฟล์พร็อพเพอร์ตี้ที่มีการแมปไปใช้ การแมปเมธอดแต่ละรายการจะกำหนดด้วยลายเซ็นเมธอด Java แบบเต็มสำหรับคีย์และค่าตัวเลือก Objective-C ตัวอย่างเช่น เส้นที่จะจับคู่ Object.equals() กับ NSObject.isEqual: คือ

java.lang.Object.equals(Ljava/lang/Object;)Z = isEqual:

การประกาศซ้ายมือคือลายเซ็นของเมธอดแบบเต็ม ตามที่กำหนดโดย Java Virtual Machine Specification คำจำกัดความด้านขวาประกอบด้วยตัวเลือก iOS (เช่น สิ่งที่คุณจะส่งไปยัง @selector()) โดยเมธอดและการแมปจะต้องมีจำนวนพารามิเตอร์เท่ากัน

อีกตัวอย่างหนึ่ง บรรทัดนี้เทียบเท่ากับตัวอย่างในส่วนก่อนหน้านี้:

pkg.ClassName.setTime(III)V = setTimeWithHours:minutes:seconds:

สามารถระบุไฟล์การจับคู่เพิ่มเติมในบรรทัดคำสั่งได้โดยใช้ตัวเลือก --mapping