资讯专栏INFORMATION COLUMN

Java反射-Getters and Setters

wanglu1209 / 3078人阅读

摘要:使用反射可以在运行时检视类的方法并调用它们。你不能直接得到和,必须扫描类所有的方法并依次检查是否或。首先,我们需要建立和方法的特征方法名称以开始,需要参数,并且返回一个值。查询一个类的和方法的示例代码如下

使用反射可以在运行时检视类的方法并调用它们。这被用来发现类的getters和setters。你不能直接得到getters和setters,必须扫描类所有的方法并依次检查是否getter或setter。
首先,我们需要建立getters和setters方法的特征:

Getter
getter方法名称以“get”开始,需要0参数,并且返回一个值。

Setter
setter方法名称以“set”开始,需要1个参数。

Setters方法可能会也可能不会返回一个值。一些Setters返回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;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77334.html

相关文章

  • JavaScript Getters and Setters

    For the most part, in JavaScript, what you see is what you get. A value’s a value; there are no tricks. Sometimes however, you want a value that’s based on some other values: someone’s full name, for ...

    warnerwu 评论0 收藏0
  • PHP设计模式(三):封装

    摘要:原文地址设计模式三封装面向对象编程中,一切都是对象,对一个对象的封装,也成了面向对象编程中必不可少的部分。封装方法和别的程序设计语言一样,也只是三种封装概念,,。直接访问和修改破坏了类的封装性。 原文地址:PHP设计模式(三):封装 Introduction 面向对象编程中,一切都是对象,对一个对象的封装,也成了面向对象编程中必不可少的部分。和C/C++,Java,Python等语言一...

    dongxiawu 评论0 收藏0
  • Spring详解4.容器内幕

    摘要:在这一步里,将配置文件的信息装入到容器的定义注册表中,但此时还未初始化。注册后处理器根据反射机制从中找出所有类型的,并将它们注册到容器后处理器的注册表中。是属性编辑器的注册表,主要作用就是注册和保存属性编辑器。 点击进入我的博客 1 Spring容器整体流程 1.1 ApplicationContext内部原理 AbstractApplicationContext是Applicati...

    dantezhao 评论0 收藏0
  • 手写Spring之IOC基于注解动态创建对象

    摘要:上一篇博客介绍了如何基于配置文件在运行时创建实例对象,这篇博客将介绍基于注解方式怎样实现对象的创建。方便测试,该类型分别创建两个单例和多例的类型。注意这种为对象注入属性值的方式耦合度较高,可根据情况使用。 上一篇博客介绍了如何基于xml配置文件在运行时创建实例对象,这篇博客将介绍基于注解方式怎样实现对象的创建。 废话不多说,直接上代码。 首先还是创建项目,由于这次不需要使用第三方的AP...

    Andrman 评论0 收藏0
  • Java中的JSON数据绑定框架Jackson使用介绍

    摘要:系列文章地址文档可以轻松的将对象转换成对象和文档,同样也可以将转换成对象。在项目中如果要引入,可以直接利用或者引入注意,项目已经自动依赖了与,不需要额外重复引入。 Github 系列文章地址 Jackson jackson-databind文档 Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。在项目中如果要引入Jac...

    mengera88 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<