ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java Reflection(六):Getters and Setters

2021-11-26 15:00:11  阅读:220  来源: 互联网

标签:return Reflection docs Getters Java 方法 method


使用Java反射你可以在运行期检查一个方法的信息以及在运行期调用这个方法,使用这个功能同样可以获取指定类的getters和setters,你不能直接寻找getters和setters,你需要检查一个类所有的方法来判断哪个方法是getters和setters。

首先让我们来规定一下getters和setters的特性:

Getter

Getter方法的名字以get开头,没有方法参数,返回一个值。

Setter

Setter方法的名字以set开头,有一个方法参数。

setters方法有可能会有返回值也有可能没有,一些Setter方法返回void,一些用来设置值,有一些对象的setter方法在方法链中被调用(译者注:这类的setter方法必须要有返回值),因此你不应该妄自假设setter方法的返回值,一切应该视情况而定。

下面是一个获取getter方法和setter方法的例子:

//java学习交流:737251827  进入可领取学习资源及对十年开发经验大佬提问,免费解答!
</pre>

<pre class="codeBox">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;

}</pre>

<pre>

《Java Reflection(一):Java反射指南》icon-default.png?t=LA92https://shimo.im/docs/hHvvCkq3VqdtHG8d  

《    Java Reflection(二):Classes   》icon-default.png?t=LA92https://shimo.im/docs/pg6JgCjyhRDDGvWJ/ 

《       Java Reflection(三):构造器     》icon-default.png?t=LA92https://shimo.im/docs/6YY38vCVTtXkgKC8/ 

《        Java Reflection(四):变量       》icon-default.png?t=LA92https://shimo.im/docs/dWRhHPgKwrjDdx3P/ 

《        Java Reflection(五):方法       》 icon-default.png?t=LA92https://shimo.im/docs/ThKHpxvJGkqGCDkr/ 

标签:return,Reflection,docs,Getters,Java,方法,method
来源: https://blog.csdn.net/weixin_51393513/article/details/121560165

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有