Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

การใช้ require clause ในไฟล์ module-info ใน Java 9 คืออะไร?


A โมดูล เป็นแนวคิดที่สำคัญใน Java 9 . โดยใช้แนวคิดนี้ เราสามารถแบ่งโค้ดออกเป็นส่วนประกอบเล็กๆ ที่เรียกว่า โมดูล . ดังนั้นแต่ละโมดูลจึงมีหน้าที่รับผิดชอบและประกาศการพึ่งพาโมดูลอื่นเพื่อให้ทำงานได้อย่างถูกต้อง ในการประกาศโมดูล เราจำเป็นต้องรวม "module-info.java " ไฟล์ไปยังซอร์สโค้ดรูท

มี "จำเป็น" อยู่สองสามประเภท " ประโยคใน "module-info " ไฟล์

1) ต้องการ : โดยค่าเริ่มต้น โมดูลจะไม่ทราบว่ามีโมดูลอื่นอยู่ใน เส้นทางโมดูล . ดังนั้นจึงจำเป็นต้องเพิ่มบรรทัดใน module-info.java ของเรา:"requires " ทุกครั้งที่เราต้องการเข้าถึงโมดูลอื่น

module com.tutorialspoint.gui {
   requires com.tutorialspoint.model;
   requires java.desktop;
}

2) ต้องการสกรรมกริยา : ในกรณีของโมดูลของเรา "com.tutorialspoint.model ":ส่งคืนประเภทอินเทอร์เฟซที่ส่งออกของโมดูล "com.core " ดังนั้น โมดูลใด ๆ ที่ต้องการใช้ก็ต้องใช้ "com.core " เพื่อเข้าถึงคลาสของโมดูลที่สองนี้โดยมีข้อผิดพลาดในการรวบรวม Java 9 อนุญาตให้ใช้คำหลัก "สกรรมกริยา " เพื่อบ่งชี้ว่าโดยการถ่ายทอด ผู้ใช้ "com.tutorialspoint.model " สามารถเข้าถึง "com. แกนหลัก " ที่ช่วยให้เปลี่ยนแปลงการใช้งานได้ง่าย

module com.tutorialspoint.model {
   requires transitive com.core;
}

3) ต้องการ แบบคงที่ : คำหลัก "ต้องการคงที่ " หมายถึงแนวคิดของการพึ่งพาที่เป็นทางเลือก โมดูลดังกล่าวคือ:

  • บังคับในการรวบรวม: ข้อผิดพลาดในการรวบรวมสามารถเกิดขึ้นได้หากโมดูลไม่มีอยู่ในโมดูลพาธที่คอมไพล์
  • ตัวเลือกที่รันไทม์: ไม่สามารถนำโมดูลนี้มาพิจารณาในขั้นตอนการตรวจสุขภาพจิตเมื่อเริ่มแอปพลิเคชัน แอปพลิเคชันเริ่มทำงานแม้ว่าจะไม่มีโมดูล

ตัวอย่างเช่น เราต้องการเสนอความคงอยู่ของข้อมูลของแอปพลิเคชัน ทั้งใน oracle ฐานข้อมูล หรือ ฐานข้อมูล h2 .

module com.tutorialspoint.model {
   requires static ojdbc
   requires static h2daabase.h2; 
}