java getxxx_java的invoke与getMethod方法用法
和listener一起使用舉例:
需要在控件中監聽某個動作:比如button點擊,畫面滾動等
1.為控件定義一個屬性:屬性綁定一個方法
xxxProperty ="onPropertyXxxxFunc”
2.首先自定義一個Listener
// 在控件構造函數中獲得控件屬性的值xxxPropertyValue
// 將該屬性作為參數傳遞給自定義的Listener
new xxxListener(this, xxxPropertyValue)
3.類似與Android原生的Listener,設計一個interface
public interface OnXxxxListener {
void onXXXSignalFunc(需要用的參數列表);
}
4.該xxxListener實現OnXxxxListener的接口
// 在構造中拿到屬性中綁定的方法"onPropertyXxxxFunc"
context.getClass().getMethod(xxxPropertyValue,參數類型……)
//重寫OnXxxxListener中onXXXSignalFunc方法
上面拿到的方法調用invoke,觸發該方法onPropertyXxxxFunc
5.在畫面中實裝onPropertyXxxxFunc
6.調用onXXXSignalFunc方法:在接收畫面滾動信號,down,等信號時調用。調用onXXXSignalFunc方法,會調用invoke,觸發onPropertyXxxxFunc,畫面處理某些邏輯
Method getMethod(String name,Class...parameterTypes)
name: method的名稱
parameterTypes:method的參數類型的列表(參數順序需按聲明method時的參數列表排列)
返回:符合method名稱和參數的method對象
拋出錯誤:NoSuchMethodException?(沒有找到所要查詢的Method對象或Method名稱為“”或“”)
NullPointerException (所要查詢的Method對象的名稱為null)
SecurityException(調用的類或其父類沒有調用權限)
invoke方法
作用:調用包裝在當前Method對象中的方法。
原型:Object invoke(Object obj,Object...args)
參數解釋:obj:實例化后的對象
args:用于方法調用的參數
返回:根據obj和args調用的方法的返回值
拋出錯誤:IllegalAccessException(Method對象強制Java語言執行控制或無權訪問obj對象)
IllegalArgumentException(方法是實例化方法,而指定需要調用的對象并不是實例化后的類或接口)
一個完整的例子:
總結
以上是生活随笔為你收集整理的java getxxx_java的invoke与getMethod方法用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java一年包装_java回顾之包装类
- 下一篇: 浦发AE白被秒拒?秒拒原来是因为这个