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 นั้นๆ เช่นกัน นะคร้าบบ
แจาก Ipad สำหรับคำถามแรกซะแระมั้ง ฮ่าๆ
สำหรับเรื่องของ 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 สำหรับคำถามแรกซะแระมั้ง ฮ่าๆ
งงครับ 555+ ขออธิบายละเอียดกว่านี้ได้มั้ยครับ
ตอบลบ