原文地址:http://tutorials.jenkov.com/java-reflection/getters-setters.html
============================================================================================
使用Java反射你可以檢查類的方法並在執行時呼叫它們。這個可以用來檢測一個給定類所包含的Getter和Setter方法。你不能明確的獲取Getter和Setter,所以你不得不通過掃描類裡面的所有方法,然後檢查每個方法是不是Getter方法或者Setter方法。
首先,讓我們建立一些描述Getter和Setter特徵的規則:
- Getter
一個getter方法的方法名易“get”開頭,不接受引數,返回一個值。
- Setter
一個setter方法的方法名以“set”開頭,接受一個引數。
setter方法既可以返回值也可以不返回值。一些setter方法返回void,一些返回傳入的值,其他的為了是使用方法鏈返回撥用該setter的物件。因此,你不應該對一個setter方法的返回值型別做假設。
這裡是找出一個類的getter方法和setter方法的程式碼示例:
public static void printGettersSetters(Class aClass){ Method[] methods = aClass.getMethods(); for(Method method : methods){ if(isGetter(method)) System.out.println("getter: " + method); if(isSetter(method)) System.out.println("setter: " + method); } } public static boolean isGetter(Method method){ if(!method.getName().startsWith("get")) return false; if(method.getParameterTypes().length != 0) return false; if(void.class.equals(method.getReturnType()) return false; return true; } public static boolean isSetter(Method method){ if(!method.getName().startsWith("set")) return false; if(method.getParameterTypes().length != 1) return false; return true; }
========================================================================================
- 目錄
這是一個本教程到目前為止涵蓋的主題列表:
- Java反射——引言
- Java反射——Class物件
- Java反射——建構函式
- Java反射——欄位
- Java反射——方法
- Java反射——Getter和Setter
- Java反射——私有欄位和私有方法
- Java反射——註解
- Java反射——泛型
- Java反射——陣列
- Java反射——動態代理
- Java反射——類的動態載入和重新載入
(敬請期待下一篇翻譯)