成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java反射-Getters and Setters

wanglu1209 / 3118人閱讀

摘要:使用反射可以在運行時檢視類的方法并調(diào)用它們。你不能直接得到和,必須掃描類所有的方法并依次檢查是否或。首先,我們需要建立和方法的特征方法名稱以開始,需要參數(shù),并且返回一個值。查詢一個類的和方法的示例代碼如下

使用反射可以在運行時檢視類的方法并調(diào)用它們。這被用來發(fā)現(xiàn)類的getters和setters。你不能直接得到getters和setters,必須掃描類所有的方法并依次檢查是否getter或setter。
首先,我們需要建立getters和setters方法的特征:

Getter
getter方法名稱以“get”開始,需要0參數(shù),并且返回一個值。

Setter
setter方法名稱以“set”開始,需要1個參數(shù)。

Setters方法可能會也可能不會返回一個值。一些Setters返回void、設(shè)置值,其他setter方法在方法鏈上調(diào)用(需要返回值)。因此,你不能對Setter方法的返回值做任何假設(shè)。
查詢一個類的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;
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77334.html

相關(guān)文章

  • 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設(shè)計模式(三):封裝

    摘要:原文地址設(shè)計模式三封裝面向?qū)ο缶幊讨?,一切都是對象,對一個對象的封裝,也成了面向?qū)ο缶幊讨斜夭豢缮俚牟糠帧7庋b方法和別的程序設(shè)計語言一樣,也只是三種封裝概念,,。直接訪問和修改破壞了類的封裝性。 原文地址:PHP設(shè)計模式(三):封裝 Introduction 面向?qū)ο缶幊讨?,一切都是對象,對一個對象的封裝,也成了面向?qū)ο缶幊讨斜夭豢缮俚牟糠?。和C/C++,Java,Python等語言一...

    dongxiawu 評論0 收藏0
  • Spring詳解4.容器內(nèi)幕

    摘要:在這一步里,將配置文件的信息裝入到容器的定義注冊表中,但此時還未初始化。注冊后處理器根據(jù)反射機制從中找出所有類型的,并將它們注冊到容器后處理器的注冊表中。是屬性編輯器的注冊表,主要作用就是注冊和保存屬性編輯器。 點擊進入我的博客 1 Spring容器整體流程 1.1 ApplicationContext內(nèi)部原理 AbstractApplicationContext是Applicati...

    dantezhao 評論0 收藏0
  • 手寫Spring之IOC基于注解動態(tài)創(chuàng)建對象

    摘要:上一篇博客介紹了如何基于配置文件在運行時創(chuàng)建實例對象,這篇博客將介紹基于注解方式怎樣實現(xiàn)對象的創(chuàng)建。方便測試,該類型分別創(chuàng)建兩個單例和多例的類型。注意這種為對象注入屬性值的方式耦合度較高,可根據(jù)情況使用。 上一篇博客介紹了如何基于xml配置文件在運行時創(chuàng)建實例對象,這篇博客將介紹基于注解方式怎樣實現(xiàn)對象的創(chuàng)建。 廢話不多說,直接上代碼。 首先還是創(chuàng)建項目,由于這次不需要使用第三方的AP...

    Andrman 評論0 收藏0
  • Java中的JSON數(shù)據(jù)綁定框架Jackson使用介紹

    摘要:系列文章地址文檔可以輕松的將對象轉(zhuǎn)換成對象和文檔,同樣也可以將轉(zhuǎn)換成對象。在項目中如果要引入,可以直接利用或者引入注意,項目已經(jīng)自動依賴了與,不需要額外重復(fù)引入。 Github 系列文章地址 Jackson jackson-databind文檔 Jackson可以輕松的將Java對象轉(zhuǎn)換成json對象和xml文檔,同樣也可以將json、xml轉(zhuǎn)換成Java對象。在項目中如果要引入Jac...

    mengera88 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<