首頁 Java java教程 java中獲得一個類別的方法介紹

java中獲得一個類別的方法介紹

Jun 30, 2017 am 10:33 AM
方法 獲得

透過class.getMethos()方法取得類別的所有公共方法都包含父類別的公共方法。

 1 import lombok.Data; 2  3 /** 4  * Created by hunt on 2017/6/27. 5  
 * 测试的实体类 6  * @Data 编译后会自动生成set、get、无惨构造、equals、canEqual、hashCode、toString方法 7  
 */ 8 @Data 9 public class Person {10     private String name;11     public String nickName;12     private int age;13     private void say(){14         System.out.println("say hunt");15     }16 }
登入後複製
View Code
#
 1 import java.lang.reflect.Method; 2  3 /** 4  * Created by hunt on 2017/6/27. 5  
 */ 6 public class NewInstanceTest { 7     public static void main(String[] args) { 8         
 Class<Person> personClass = Person.class; 9         try {10             
 Method[] methods = personClass.getMethods();11             for (Method m:methods) {12                 System.out.println(m);13             }14         } catch (Exception e) {15             e.printStackTrace();16         }17     }18 }
登入後複製
View Code

 

透過class.getDeclaredMethods()方法取得類別的所有屬性(公用,保護,默認,和私有方法)。

 1 import java.lang.reflect.Method; 2  3 /** 4  * Created by hunt on 2017/6/27. 5  
 */ 6 public class NewInstanceTest { 7     public static void main(String[] args) { 8         
 Class<Person> personClass = Person.class; 9         try {10             
 Method[] methods = personClass.getDeclaredMethods();11             for (Method m:methods) {12                 
 System.out.println(m);13             }14         } catch (Exception e) {15             
 e.printStackTrace();16         }17     }18 }
登入後複製
View Code

注意:傳回的方法數組中的元素沒有排序,也沒有任何特定的順序。

 

獲得具體的方法:

#
 1 import java.lang.reflect.Method; 2  3 /** 4  * Created by hunt on 2017/6/27. 5  */ 6 public class NewInstanceTest { 7     public static void main(String[] args) { 8         Class<Person> personClass = Person.class; 9         try {10             Person p = personClass.newInstance();11             Method method = personClass.getMethod("setName", String.class);12             method.invoke(p,"hunt");13             System.out.println(p);14             method = personClass.getMethod("getName");15             System.out.println("getName方法"+method.invoke(p));16             method = personClass.getDeclaredMethod("say");17             method.setAccessible(true);//私有方法要授权18             method.invoke(p);19         } catch (Exception e) {20             e.printStackTrace();21         }22     }23 }
登入後複製
View Code

總結:personClass.getDeclaredMethod("say"); 

#   method.setAccessible(#true

##基於對屬性的保護,預設為false。這裡相當於一個授權的過程,設定true來允許操作這個屬性。

 

以上是java中獲得一個類別的方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程 怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程 Mar 28, 2024 pm 12:50 PM

怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程

七彩虹主機板怎麼進入bios?教你兩種方法 七彩虹主機板怎麼進入bios?教你兩種方法 Mar 13, 2024 pm 06:01 PM

七彩虹主機板怎麼進入bios?教你兩種方法

微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) 微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) May 01, 2024 pm 12:01 PM

微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人)

Win11管理員權限取得方法總計 Win11管理員權限取得方法總計 Mar 09, 2024 am 08:45 AM

Win11管理員權限取得方法總計

快速掌握:華為手機開啟兩個微信帳號方法大揭密! 快速掌握:華為手機開啟兩個微信帳號方法大揭密! Mar 23, 2024 am 10:42 AM

快速掌握:華為手機開啟兩個微信帳號方法大揭密!

手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) 手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) May 04, 2024 pm 06:01 PM

手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋)

Oracle版本查詢方法詳解 Oracle版本查詢方法詳解 Mar 07, 2024 pm 09:21 PM

Oracle版本查詢方法詳解

手機字體大小設定方法(輕鬆調整手機字體大小) 手機字體大小設定方法(輕鬆調整手機字體大小) May 07, 2024 pm 03:34 PM

手機字體大小設定方法(輕鬆調整手機字體大小)

See all articles