程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 反射機制-獲取對應class信息

java 反射機制-獲取對應class信息

編輯:關於JAVA

java 反射機制-獲取對應class信息。本站提示廣大學習愛好者:(java 反射機制-獲取對應class信息)文章只能為提供參考,不一定能成為您想要的結果。以下是java 反射機制-獲取對應class信息正文


 1 package reflection;
 2 
 3 public class User {
 4     public String name;
 5     protected int age;
 6     String address;
 7     private String sex;
 8     
 9     public User() {
10         super();
11     }
12     
13     public User(String name, int age, String sex) {
14         super();
15         this.name = name;
16         this.age = age;
17         this.sex = sex;
18     }
19     
20     public String getName() {
21         return name;
22     }
23     public void setName() {
24         this.name = "test";
25     }
26     public int getAge() {
27         return age;
28     }
29     public String getSex() {
30         return sex;
31     }
32     public void setSex(String sex) {
33         this.sex = sex;
34     }
35     
36 }
class User
 1 package reflection;
 2 
 3 import java.lang.reflect.Constructor;
 4 import java.lang.reflect.Field;
 5 import java.lang.reflect.Method;
 6 
 7 public class Demo01 {
 8     public static void main(String[] args) {
 9 
10         Class<?> c;
11         try {
12             c = Class.forName("reflection.User");
13 
14             // 獲取類的稱號
15             System.out.println("獲取類的稱號");
16             System.out.println("getName():" + c.getName());// 取得包名+類名
17             System.out.println("getSimpleName():" + c.getSimpleName());// 取得類名
18             System.out.println("getCanonicalName():" + c.getCanonicalName());// 取得類名
19             System.out.println("*******************************");
20             // 獲取屬性信息
21             System.out.println("獲取屬性信息");
22             Field[] fields = c.getDeclaredFields();
23             // Field[] fields = c.getFields(); 只能獲取public修飾的屬性信息
24             for (Field f : fields) {
25                 String fName = f.getName();
26                 System.out.println(c.getDeclaredField(fName));
27             }
28             System.out.println("*******************************");
29             // 獲取辦法信息
30             System.out.println("獲取辦法信息");
31             Method[] methods = c.getDeclaredMethods();
32             for (Method m : methods) {
33                 // String mName = m.getName();
34                 System.out.println(m.getName() + "-->" + m);
35             }
36             System.out.println("經過稱號獨自獲取對應的getName辦法:" + c.getDeclaredMethod("getName"));
37             System.out.println("經過稱號獨自獲取對應的setSex辦法:" + c.getDeclaredMethod("setSex", String.class));// 辦法有參,必需傳遞參數類型
38             System.out.println("*******************************");
39             // 獲取結構器信息
40             System.out.println("獲取結構器信息");
41             Constructor<?>[] constructor = c.getConstructors();
42             for (Constructor<?> cons : constructor) {
43                 System.out.println(cons);
44             }
45 
46         } catch (ClassNotFoundException | NoSuchFieldException | SecurityException e) {
47             e.printStackTrace();
48         } catch (NoSuchMethodException e) {
49             e.printStackTrace();
50         }
51     }
52 }

output:

獲取類的稱號
getName():reflection.User
getSimpleName():User
getCanonicalName():reflection.User
*******************************
獲取屬性信息
public java.lang.String reflection.User.name
protected int reflection.User.age
java.lang.String reflection.User.address
private java.lang.String reflection.User.sex
*******************************
獲取辦法信息
getName-->public java.lang.String reflection.User.getName()
setName-->public void reflection.User.setName()
setSex-->public void reflection.User.setSex(java.lang.String)
getSex-->public java.lang.String reflection.User.getSex()
getAge-->public int reflection.User.getAge()
經過稱號獨自獲取對應的getName辦法:public java.lang.String reflection.User.getName()
經過稱號獨自獲取對應的setSex辦法:public void reflection.User.setSex(java.lang.String)
*******************************
獲取結構器信息
public reflection.User()
public reflection.User(java.lang.String,int,java.lang.String)

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved