Java Reflection(六):Getters and Setters
2017-02-10 15:11
309 查看
原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)
使用Java反射你可以在运行期检查一个方法的信息以及在运行期调用这个方法,使用这个功能同样可以获取指定类的getters和setters,你不能直接寻找getters和setters,你需要检查一个类所有的方法来判断哪个方法是getters和setters。
首先让我们来规定一下getters和setters的特性:
Getter
Getter方法的名字以get开头,没有方法参数,返回一个值。
Setter
Setter方法的名字以set开头,有一个方法参数。
setters方法有可能会有返回值也有可能没有,一些Setter方法返回void,一些用来设置值,有一些对象的setter方法在方法链中被调用(译者注:这类的setter方法必须要有返回值),因此你不应该妄自假设setter方法的返回值,一切应该视情况而定。
下面是一个获取getter方法和setter方法的例子:
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 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方法的例子:
</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>
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java
Reflection(六):Getters and Setters
相关文章推荐
- Java Reflection(六):Getters and Setters
- Java Reflection - Getters and Setters
- Java Reflection - Getters and Setters
- Java reflection: accessing private fields and methods
- 非深入探寻Java反射机制 (Getters and Setters)
- lombok eclipse 提示 generating getters and setters failed 错误解决方案
- lombok eclipse 提示 generating getters and setters failed 错误解决方案
- WHY YOU SHOULDN'T USE GETTERS AND SETTERS ON ANDROID
- Java Bean Getters/Setters
- Java RTTI and Reflection
- JavaScript Getters and Setters
- Java Reflection Tutorial for Classes, Methods, Fields, Constructors, Annotations and much more
- Java Annotations, Java Reflection, and Java Test Runner
- eclipse Generating Getters and Setters Failed
- Where Are My Getters and Setters?
- Java Reflection(六):Getters and Setters
- Using Properties And Synthesize In Objective-C 2.0 For Getters And Setters
- Java中的setters和getters
- Java Annotations, Java Reflection, and Java Test Runner
- eclipse alt + shift + s generate getters and setters