Java动物类enjoy方法打印_Java反射学习-2 - 获取Class对象的三种方式
1 packagecn.tx.reflect;2
3 importjava.lang.reflect.Constructor;4 importjava.lang.reflect.Field;5 importjava.lang.reflect.Method;6 importjava.util.Arrays;7 /**
8 * 二、獲取一個類的Class對象的三種方式:9 (1)知道類的全路徑名:Class> clazz = Class.forName("類的全路徑名");10 (2)知道類的名字: Class> clazz = 類名.class;11 (3)知道該類的一個對象 : Class> clazz = 對象名.getClass();12 *@authorAdministrator13 *14 */
15 public classReflectLearn2 {16
17 private static String className = "java.lang.String";18 public static void main(String[] args) throwsException {19
20 //根據類的名字獲取類的Class對象
21 getClazzByClassName();22 //根據對象獲取Class對象,反射獲取類的方法,屬性,構造器
23 getCalzzByObject(newPerson());24 }25
26 public static voidgetClazzByClassName(){27 Class> clazz = Person.class;//類名.class獲取類的Class對象
28 Method[] methods =clazz.getDeclaredMethods();29 for(Method m : methods) {30 System.out.println(m);31 }32 }33
34 /**
35 * 根據類的對象獲取Class對象36 *@paramobj37 */
38 public static voidgetCalzzByObject(Object obj){39 //Class extends Object>表示通過反射獲取的對象的類型不確定,但是一定是Object類的子類40 //等價于Class> clazz = obj.getClass();
41 Class extends Object> clazz =obj.getClass();42 //2.獲得傳遞過來的類(上面的String類)的所有方法——目的就是為了調用獲得的方法
43 System.out.println("----------------獲取類的所有聲明的方法-------------------");44 Method[] methods =clazz.getDeclaredMethods();45 for(Method m : methods) {46 System.out.println(m);47 }48
49 //3.獲得類的所有聲明的屬性——目的:設置屬性或者是獲取屬性值
50 System.out.println("-------------獲得類的所有聲明的屬性---------------");51 Field[] fields =clazz.getDeclaredFields();52 for(Field field : fields) {53 System.out.println(field);54 }55
56 //4.獲得類的所有構造器——創建對象
57 System.out.println("--------------獲得類的所有構造器-----------------");58 Constructor>[] constructors =clazz.getDeclaredConstructors();59 for (Constructor>constructor : constructors) {60 System.out.println(constructor);61 }62 }63
64 }65 /*getCalzzByObject(new Person());打印結果如下66 * ----------獲取Person類的信息-------------67 public java.lang.String cn.tx.Person.toString()68 public java.lang.String cn.tx.Person.getAddress()69 public java.lang.String cn.tx.Person.getName()70 public java.lang.Integer cn.tx.Person.getId()71 public void cn.tx.Person.setName(java.lang.String)72 public void cn.tx.Person.setId(java.lang.Integer)73 public void cn.tx.Person.setAddress(java.lang.String)74 -------------獲得類的所有聲明的屬性---------------75 private java.lang.Integer cn.tx.Person.id76 private java.lang.String cn.tx.Person.name77 private java.lang.String cn.tx.Person.address78 --------------獲得類的所有構造器--------------79 public cn.tx.Person()80 public cn.tx.Person(java.lang.Integer,java.lang.String,java.lang.String)81 **/
總結
以上是生活随笔為你收集整理的Java动物类enjoy方法打印_Java反射学习-2 - 获取Class对象的三种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java bigdecimal min_
- 下一篇: java 导出word换行_Java 导