บทความนี้อธิบายวิธีการใช้งานอย่างง่ายสำหรับการสะท้อนชวา แบ่งปันสำหรับการอ้างอิงของคุณ วิธีการใช้งานเฉพาะมีดังนี้:
การคัดลอกรหัสมีดังนี้: แพ็คเกจสะท้อน;
นำเข้า Java.io.File;
นำเข้า Java.io.FileInputStream;
นำเข้า java.io.filenotfoundException;
นำเข้า Java.io.FileOutputStream;
นำเข้า java.io.ioException;
นำเข้า java.util.properties;
อินเทอร์เฟซผลไม้ {
โมฆะนามธรรมสาธารณะ Eat ();
-
คลาส Apple ใช้ผลไม้ {
โมฆะสาธารณะ Eat () {
System.out.println ("Eat Apple");
-
-
ชั้นส้มใช้ผลไม้ {
โมฆะสาธารณะ Eat () {
System.out.println ("Eat Orange");
-
-
คลาส init {
คุณสมบัติคงที่สาธารณะ getPro () พ่น filenotfoundException, ioexception {
คุณสมบัติ PRO = คุณสมบัติใหม่ ();
ไฟล์ f = ไฟล์ใหม่ ("fruit.properties");
ถ้า (f.exists ()) {
System.out.println ("มีไฟล์กำหนดค่า!");
// อ่านคู่คีย์-ค่าจากไฟล์การกำหนดค่า
Pro.Load (ใหม่ FileInputStream (F));
}อื่น{
System.out.println ("ไม่มีไฟล์กำหนดค่า!");
Pro.SetProperty ("Apple", "Reflect.apple");
Pro.SetProperty ("Orange", "Reflect.orange");
Pro.Store (ใหม่ fileOutputStream (F), "คลาสผลไม้");
-
กลับมามืออาชีพ;
-
-
โรงงานชั้นเรียน {
ผลไม้คงที่สาธารณะ getInstance (String className) {
ผลไม้ f = null;
พยายาม {
// รับวัตถุอินสแตนซ์ผลไม้ผ่านการสะท้อนกลับ
f = (ผลไม้) class.forName (className) .NewInstance ();
} catch (InstantiationException e) {
E.PrintStackTrace ();
} catch (unglegalAccessException e) {
E.PrintStackTrace ();
} catch (classnotFoundException e) {
E.PrintStackTrace ();
-
กลับ f;
-
-
ชั้นเรียนสาธารณะสวัสดี {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
พยายาม {
คุณสมบัติ pro = init.getPro ();
Fruit F = Factory.getInstance (Pro.GetProperty ("Apple"));
ถ้า (f! = null) {
f.eat ();
-
} catch (filenotfoundexception e) {
// todo catch block ที่สร้างอัตโนมัติ
E.PrintStackTrace ();
} catch (ioexception e) {
// todo catch block ที่สร้างอัตโนมัติ
E.PrintStackTrace ();
-
-
-
ผลที่ได้คือ:
มีไฟล์กำหนดค่า!
กินแอปเปิ้ล
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน