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