【譯】6. Java反射——Getter和Setter

pengisgood發表於2013-09-07

原文地址: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;
}

 

 ========================================================================================

  • 目錄

 

 

 

  這是一個本教程到目前為止涵蓋的主題列表:     

 

 

 

  1. Java反射——引言
  2. Java反射——Class物件
  3. Java反射——建構函式
  4. Java反射——欄位
  5. Java反射——方法
  6. Java反射——Getter和Setter
  7. Java反射——私有欄位和私有方法
  8. Java反射——註解
  9. Java反射——泛型
  10. Java反射——陣列
  11. Java反射——動態代理
  12. Java反射——類的動態載入和重新載入

 

 

 

(敬請期待下一篇翻譯)

 

相關文章