Java Programming กับเรื่องของ Reflection เพื่อการเรียกใช้แบบ Dynamic

บทความเกี่ยวกับ : Java Programming กับเรื่องของ Reflection เพื่อการเรียกใช้แบบ Dynamic


สำหรับเรื่องของ Java Programming แบบที่ Advance หน่อยผมมักจะนึกถึงเรื่องนี้
Reflection Dynamic Invocation คือการเรียกใช้ Class หรือ Method แบบ Dynamic นั่นเอง
จริงๆ เคยกล่าวถึงมาแล้วในโพสก่อนๆ แต่อยากจะเพิ่มเติมอีกซักหน่อย
คำว่า Dynamic คือยังไงบางคนอาจจะงง
ยกตัวอย่างง่ายเช่น  เรารู้ ชื่อ Class , ชื่อ Method แล้ว
Code บรรทัดนี้เราอยากเรียกใช้ Class หรือ Method อะไรก็ได้ตามแต่ที่เราจะส่งเข้ามา
ยิ่งอธิบายยิ่งจะงง ผมก็ชักจะงงแระ ฮ่าๆๆ เอาตัวอย่างไปดูเลยละกันนะ

Class เหล่านี้อยู่ใน Package java.lang.reflect.*
จะมีให้เรียกใช้งานได้ทั้ง Dynamic Class, Method,Constructor เป็นต้น เป็นใบ เป็นดอก เป็นผล ฮ่าๆ
เช่น
Method method = obj.getClass().getMethod(ชื่อ Method, Array ที่บรรจุ Class ของ Parameter);

method.invoke(obj, Array ที่บรรจุ Object ของ Parameter);

แจ่มมั้ยครับนั่นคือตัวอย่างการใช้งาน Invoke Method
ตัวอย่าง Source Code ที่ใช้จริงนะครับก็ประมาณนี้
    public void testCallMethod() throws Exception {
        Method method = this.getClass().getMethod("test", new Class[] {});
        Object ret = method.invoke(this, new Object[] {});       
    }

ปล . ที่ใช้ this ก็เพราะเรียกใช้ Object ของตัวเอง ถ้าเป็น Object ของ Class อื่นก็ใช้
ชื่อ Class นั้นๆ และก็ Object นั้นๆ เช่นกัน นะคร้าบบ
สุดท้ายอ่านแล้วงง ตรงใหนถามได้ครับ
ตั้งแต่ทำ Blog มานี่ยังไม่มีคนถามซักกะคน สงสัยผมต้องขึ้นป้ายว่า
แจาก Ipad สำหรับคำถามแรกซะแระมั้ง ฮ่าๆ

ความคิดเห็น

  1. งงครับ 555+ ขออธิบายละเอียดกว่านี้ได้มั้ยครับ

    ตอบลบ

แสดงความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Oracle date format จัด format date ให้แสดง พศ และ เดือน ภาษาไทยหรือตามภาษาที่เราเลือก

java -Xms , java -Xmx กำหมด memory ให้ JVM เพื่อป้องกันปัญหา Out of Memory

Java this กับ super การใช้งานคำสั่ง this กับ super ใน ภาษา Java