鍍金池/ 教程/ Java/ Java 訪問器
Java 數(shù)組
Java 訪問器
Java 泛型
Java 方法
指南
Java 動態(tài)代理
Java 變量
Java 注解
Java 私有變量和私有方法
Java 動態(tài)類加載與重載
java 類
Java 構(gòu)造器

Java 訪問器

原文地址

作者: Jakob Jenkov 譯者:葉文海(yewenhai@gamil.com)

使用 Java 反射你可以在運行期檢查一個方法的信息以及在運行期調(diào)用這個方法,使用這個功能同樣可以獲取指定類的 getters 和 setters,你不能直接尋找 getters 和 setters,你需要檢查一個類所有的方法來判斷哪個方法是 getters 和 setters。

首先讓我們來規(guī)定一下 getters 和 setters 的特性:

Getter

Getter 方法的名字以 get 開頭,沒有方法參數(shù),返回一個值。

Setter

Setter 方法的名字以 set 開頭,有一個方法參數(shù)。

setters 方法有可能會有返回值也有可能沒有,一些 Setter 方法返回 void,一些用來設(shè)置值,有一些對象的 setter 方法在方法鏈中被調(diào)用(譯者注:這類的 setter 方法必須要有返回值),因此你不應(yīng)該妄自假設(shè) setter 方法的返回值,一切應(yīng)該視情況而定。

下面是一個獲取 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>

本文鏈接地址: Java Reflection(六):Getters and Setters

上一篇:Java 注解下一篇:Java 泛型