摘要: 使用反射來調用類的方法,需要使用java.lang.reflect.Method中的invoke方法,Object??invoke(Object obj, Object[] args),第一個參數是指需要調用的那個方法的隱式參數,也即那個方法所屬的對象,如果調用的是一個靜態方法將第一個參數指定為null,第二個參數是指需要調用的那個方法的顯式參數,因為一個方法可以有很多個參數所以在這里我們必須用一個數組來存放這些參數,注意這個方法使用的是對象數組,在存放時盡管有值類型我們也要把相應的包裝器類存放進去,當調用的這個方法有返回值,這在Java中是一個令人煩惱的問題,如果返回來的是一個對象還好,我們只需將invoke返回的Object強制轉換成特定的對象就可以,可是返回一個值類型呢?我們要使用就麻煩了,首先要對其解包裝,在用其包裝對象的方法返回普通值!我們編程思路很重要是吧
閱讀全文