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

原文地址: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反射——类的动态加载和重新加载

 

 

 

(敬请期待下一篇翻译)

 

posted @ 2013-09-07 21:45  pengisgood  阅读(5321)  评论(0编辑  收藏  举报