Java Reflection(六):Getters and Setters

简介:

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

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

Getter

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

Setter

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

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

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

01 </pre>
02 <pre class="codeBox">public static void printGettersSetters(Class aClass){
03   Method[] methods = aClass.getMethods();
04  
05   for(Method method : methods){
06     if(isGetter(method)) System.out.println("getter: " + method);
07     if(isSetter(method)) System.out.println("setter: " + method);
08   }
09 }
10  
11 public static boolean isGetter(Method method){
12   if(!method.getName().startsWith("get"))      return false;
13   if(method.getParameterTypes().length != 0)   return false;
14   if(void.class.equals(method.getReturnType()) return false;
15   return true;
16 }
17  
18 public static boolean isSetter(Method method){
19   if(!method.getName().startsWith("set")) return false;
20   if(method.getParameterTypes().length != 1return false;
21   return true;
22 }</pre>
23 <pre>
相关文章
|
8月前
|
安全 Java API
Java反射(Reflection)的技术性文章
Java反射(Reflection)的技术性文章
51 1
|
8月前
|
Java
什么是Java中的反射(Reflection),如何使用它
什么是Java中的反射(Reflection),如何使用它
|
Java
Java Reflection机制 实现类的反射与动态调用
Java Reflection机制被广泛用于实现类的反射和动态调用,反射是指在运行时检查和操作类的能力。只需要一个类的名称或对象的引用,就可以获取类的信息,调用类的方法,创建对象实例等。
63 0
|
8月前
|
存储 Java API
Java中的Reflection(反射)、暴力反射
Java中的Reflection(反射)、暴力反射
|
8月前
|
Java API
Java语言特性: 解释一下Java中的反射(Reflection)。
Java语言特性: 解释一下Java中的反射(Reflection)。
67 0
|
Java 数据库连接 Spring
Java的反射(reflection)机制的简单使用
Java的反射(reflection)机制的简单使用
77 0
|
前端开发 Java API
Java反射机制(Reflection)简解与示例
Java反射机制(Reflection)简解与示例
102 0
|
Java 关系型数据库 MySQL
C#反射(Reflection)详解及于java反射的对比
C#反射(Reflection)详解及于java反射的对比
|
Java
Caused by: java.lang.NoSuchFieldError: REFLECTION
Caused by: java.lang.NoSuchFieldError: REFLECTION
708 0
Caused by: java.lang.NoSuchFieldError: REFLECTION
|
Java API
20 Java 使用反射(Reflection) 和内省技术
反射(Reflection)是程序的自我分析能力,通过反射可以确定类有哪些方法、有哪些构造方法以及有哪些成员变量。Java语言提供了反射机制,通过反射机制能够动态读取一个类的信息;能够在运行时动态加载类,而不是在编译期。反射可以应用于框架开发,它能够从配置文件中读取配置信息动态加载类、创建对象,以及调用方法和成员变量。
138 0