SampleClass
public class SampleClass {
private String prop1;
private String prop2;
public SampleClass(String prop1,String prop2){
this.prop1=prop1;
this.prop2=prop2;
}
public String getProp1() {
return prop1;
}
public void setProp1(String prop1) {
this.prop1 = prop1;
}
public String getProp2() {
return prop2;
}
public void setProp2(String prop2) {
this.prop2 = prop2;
}
}
Create Instance and Invoke Method by Name
Require Import java.lang.reflect.Constructor , java.lang.reflect.Method
public void callByName(){
try{
//Create Instance from Constructor
Class c=SampleClass.class;
Constructor cons=c.getConstructor(new Class[]{String.class,String.class});
Object obj=cons.newInstance(new Object[]{"Java",""});
//invoke method getProp1 by send methodName
Method m=c.getMethod("getProp1", new Class[]{});
String value=(String)m.invoke(obj, new Object[]{});
System.out.println("Prop1 "+value);
//invoke method setProp2(String prop2) by send methodName
m=c.getMethod("setProp2", new Class[]{String.class});
m.invoke(obj, new Object[]{"PHP"});
m=c.getMethod("getProp2", new Class[]{});
value=(String)m.invoke(obj, new Object[]{});
System.out.println("Prop2 "+value);
//This Object is the same normal way
SampleClass sc=(SampleClass)obj;
System.out.println("Norm Prop1 "+sc.getProp1());
System.out.println("Norm Prop2 "+sc.getProp2());
}catch(Exception e){}
}
Result Value
Prop1 Java
Prop2 PHP
Norm Prop1 Java
Norm Prop2 PHP
เห็นมั้ยครับจะว่าไปมันก็คือการ Execute หรือ Create instance ผ่านทาง String input ธรรมดาๆ นี่แหละ แต่ถ้ารู้จักประยุกต์ใช้ให้ดีๆ จะเป็นประโยชน์มาก ลองดูครับ
หรือหากสงสัยหรือไ ม่รู้จะเอาไปใช้ทำอะไรก็ Comment ไว้ตรงนี้ได้น่ะ ผมเข้ามา Update ทุกวัน
No comments:
Post a Comment