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

(敬请期待下一篇翻译)

【译】6. Java反射——Getter和Setter的更多相关文章

  1. java里getter和setter的作用(转载)

    [java]类中使用getter和setter的优势 http://www.importnew.com/9716.html java有三大特性:封装,继承还有多态. 而今天,我来讲一下其中最重要的特性 ...

  2. 【译】1. Java反射——引言

    原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它可以在运行时检查类.接 ...

  3. 【译】2. Java反射——Class对象

    原文地址:http://tutorials.jenkov.com/java-reflection/classes.html ====================================== ...

  4. 【译】3. Java反射——构造函数

    原文地址:http://tutorials.jenkov.com/java-reflection/constructors.html ================================= ...

  5. 【译】4. Java反射——字段

    原文地址:http://tutorials.jenkov.com/java-reflection/fields.html ======================================= ...

  6. 【译】5. Java反射——方法

    原文地址:http://tutorials.jenkov.com/java-reflection/methods.html ====================================== ...

  7. 【译】7. Java反射——私有字段和私有方法

    原文地址:http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html =================== ...

  8. 【译】8. Java反射——注解

    原文地址:http://tutorials.jenkov.com/java-reflection/annotations.html ================================== ...

  9. 【译】9. Java反射——泛型

    原文地址:http://tutorials.jenkov.com/java-reflection/generics.html ===================================== ...

随机推荐

  1. mysql数据库的备份和还原的总结

    mysql数据库的备份和还原的总结 (来自一运维同事的总结) 1. 备份方式: 热备:数据库在线进行备份,不影响读和写的在线备份方式! 温备:数据库在线进行备份,对表备份时先锁定写操作,仅可以执行读操 ...

  2. EmpireCMS的使用

    1.下载安装empirecms 下载完成后解压将upload目录整体上传到服务器,并更名为empirecms_test 更改目录文件的权限: chmod -R 777 empirecms_test 配 ...

  3. fdisk磁盘分区与挂载

    参考博客:https://blog.csdn.net/capecape/article/details/78499351?locationNum=6&fps=1 1.查看磁盘分区情况.root ...

  4. pooling的几种形式(转)

    转载地址:http://blog.csdn.net/malefactor/article/details/51078135    原作者:张俊林 CNN是目前自然语言处理中和RNN并驾齐驱的两种最常见 ...

  5. Serialize a Long as a String

    今天在写接口的时候,用postman测试,返回数据与数据库一一对应,但是给前端返回的结果,除了主键id以外,其他都一样,如下 postman: { "unitPrice": nul ...

  6. jquery获取select选择的文本与值

    jquery获取select选择的文本与值获取select :获取select 选中的 text :    $("#ddlregtype").find("option:s ...

  7. c++ 实现哈夫曼树中遇见的问题

    为了提高效率求得 叶子 节点中权值最小的两个元素,我们需要使用堆数据结构,它可以以O(logn)的复杂度 取得n个元素中的最小元素.为了绕过堆的实现,我们可以使用标准模板库中相应的标准模板—优先队列. ...

  8. c++数字和字符串的转换

    1  利用stringstream 添加头文件 #include<sstream> 数字转字符串 #include <string>   #include <sstrea ...

  9. Nginx GoAccess安装与配置

    1.下载并安装Geoip $ wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.12/GeoIP-1.6.12.ta ...

  10. python源码编译

    PyInstaller是一个基于windows平台,将源码打包成执行文件的第三方库,PyInstaller本身并不属于Python包. 源文件要采用UTF-8编码 安装Pyinstaller pip ...