java之Class

来源:互联网 发布:广电网络 股票 编辑:程序博客网 时间:2024/06/05 12:39

通过Class,可以得到一个类的一些属性。

测试代码:

package com.clazz;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Calendar;import java.util.HashMap;import junit.framework.TestCase;public class TestClass extends TestCase {public void testgetDeclaredMethods() {Method[] methods = String.class.getDeclaredMethods();for (Method m : methods) {System.out.println(m);}}public void testgetMethods() {Method[] methods = String.class.getMethods();for (Method m : methods) {System.out.println(m);}}public void testgetDeclaredConstructors() {Constructor<?>[] cons = String.class.getDeclaredConstructors();for (Constructor<?> con : cons) {System.out.println(con);}}public void testgetConstructors() {Constructor<?>[] cons = String.class.getConstructors();for (Constructor<?> con : cons) {System.out.println(con);}}public void testgetClasses() {Class<?>[] classes = HashMap.class.getClasses();for (Class<?> clazz : classes) {System.out.println(clazz);}}public void testgetDeclaredClasses() {Class<?>[] classes = HashMap.class.getDeclaredClasses();for (Class<?> clazz : classes) {System.out.println(clazz);}}public void testgetFields() {Field[] fields = Calendar.class.getFields();for (Field field : fields) {System.out.println(field);}}public void testgetDeclaredFields() {Field[] fields = Calendar.class.getDeclaredFields();for (Field field : fields) {System.out.println(field);}}}

getDeclaredMethods和getMethods的区别:

getDeclaredMethods得到该类所有的方法,除去父类的。

getMethods得到该类及其父类所有的public方法。


getDeclaredConstructors和getConstructors的区别:

getDeclaredConstructors得到该类所有的构造方法。

getConstructors得到该类所有的public的构造方法。


getClasses和getDeclaredClasses的区别:

getClasses得到该类及其父类所有的public的内部类。

getDeclaredClasses得到该类所有的内部类,除去父类的。


getFields和getDeclaredFields的区别:

getFields得到该类及其父类所有的public的成员变量。

getDeclaredFields得到该类所有的成员变量,除去父类的。

0 0
原创粉丝点击