1. 程式人生 > >java 反射(二) 反射中Class常見的方法和屬性

java 反射(二) 反射中Class常見的方法和屬性

package com.reflect;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * 反射中Class常見的方法和屬性
 * @author lr
 *
 */

public class Demo2 {

	public static void main(String[] args) throws ClassNotFoundException {
		
		Class<?> clazz =String.class;
		
		//Class的名稱(包含包路徑)
		String name = clazz.getName();
		//Class的名稱(不包含包路徑)
		String simpleName = clazz.getSimpleName();
		//Class的父類
		Class<?> superclass = clazz.getSuperclass();
		//Class的所有public方法 包含父類的
		Method[] methods = clazz.getMethods();
		//Class的所有本身宣告的方法,不限訪問許可權
		Method[] declaredMethods = clazz.getDeclaredMethods();
		//Class的所有public構造方法 包含父類的
		Constructor<?>[] constructors = clazz.getConstructors();
		//Class的所有本身宣告的構造方法,不限訪問許可權
		Constructor<?>[] declaredConstructors = clazz.getDeclaredConstructors();
		//Class的所有public屬性 包含父類的
		Field[] fields = clazz.getFields();
		//Class的所有本身宣告的屬性,不限訪問許可權
		Field[] declaredFields = clazz.getDeclaredFields();
		//Class實現的介面陣列
		Class<?>[] interfaces = clazz.getInterfaces();
		//Class是否為介面
		boolean interface1 = clazz.isInterface();
		
		//.....
		
		

	}

}