เมื่อใดก็ตามที่คุณต้องการใช้คลาส/อินเทอร์เฟซภายนอก (ทั้งที่ผู้ใช้กำหนดหรือในตัว) ในโปรแกรมปัจจุบัน คุณจะต้องนำเข้าคลาสเหล่านั้นในโปรแกรมปัจจุบันของคุณโดยใช้คีย์เวิร์ดการอิมพอร์ต
แต่ในขณะที่นำเข้าคลาสใด ๆ −
-
หากเส้นทางของคลาส/อินเทอร์เฟซที่คุณกำลังนำเข้าไม่พร้อมใช้งานสำหรับ JVM
-
หากชื่อคลาสสัมบูรณ์ที่คุณระบุไว้ในคำสั่งนำเข้าไม่ถูกต้อง (รวมถึงแพ็คเกจและชื่อคลาส)
-
หากคุณนำเข้าคลาส/อินเทอร์เฟซที่ใช้
คุณจะได้รับข้อยกเว้นว่า “ไม่พบสัญลักษณ์ ……”
ตัวอย่าง
ในตัวอย่างต่อไปนี้ เรากำลังพยายามอ่านค่าสตริงที่แสดงชื่อของผู้ใช้จากแป้นพิมพ์ (System.in) สำหรับสิ่งนี้ เรากำลังใช้คลาสสแกนเนอร์ของ Java.Util แพ็คเกจ
public class ReadingdData { public static void main(String args[]) { System.out.println("Enter your name: "); Scanner sc = new Scanner(System.in); String name = sc.next(); System.out.println("Hello "+name); } }
ข้อผิดพลาดในการคอมไพล์
เนื่องจากเราใช้คลาสที่ชื่อว่า Scanner ในโปรแกรมของเราและไม่ได้นำเข้ามาในโปรแกรมของเรา ในการดำเนินการ โปรแกรมนี้สร้างข้อผิดพลาดเวลาคอมไพล์ดังต่อไปนี้ -
ReadingdData.java:6: error: cannot find symbol Scanner sc = new Scanner(System.in); ^ symbol: class Scanner location: class ReadingdData ReadingdData.java:6: error: cannot find symbol Scanner sc = new Scanner(System.in); ^ symbol: class Scanner location: class ReadingdData 2 errors
วิธีแก้ปัญหา
-
คุณต้องตั้งค่าพาธของคลาสสำหรับไฟล์ JAR ที่มีอินเตอร์เฟสคลาสที่จำเป็น
-
นำเข้าคลาสที่ต้องการจากแพ็คเกจโดยใช้ นำเข้า คำสำคัญ. ขณะนำเข้า คุณต้องระบุชื่อที่แน่นอน (รวมถึงแพ็คเกจและแพ็คเกจย่อย) ของคลาสที่ต้องการ
ตัวอย่าง
import java.util.Scanner; public class ReadingdData { public static void main(String args[]) { System.out.println("Enter your name: "); Scanner sc = new Scanner(System.in); String name = sc.next(); System.out.println("Hello "+name); } }
ผลลัพธ์
Enter your name: krishna Hello krishna