原文地址: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反射——類的動態加載和重新加載
(敬請期待下一篇翻譯)