码迷,mamicode.com
首页 > 编程语言 > 详细

Java反射机制示例

时间:2015-09-18 18:06:16      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

链接:

http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html

 

package com.stono.reftest;

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

public class Ref {

    @SuppressWarnings("unused")
    public static void main(String[] args) throws Exception {
        // 实例化Class对象;Class是所有类的类;
        Glyph glyph = new Glyph();
        Class<? extends Glyph> class1 = glyph.getClass();
        Class<?> class2 = Glyph.class;
        Class<?> class3;
        class3 = Class.forName("com.stono.reftest.Glyph");
        // 通过Class对象实例化类;必须有无参构造函数
        Glyph glyph2 = class1.newInstance();
        // 通过Class对象获取构造函数;
        Constructor<?>[] constructors = class1.getConstructors();// 长度为1
        // 获取构造函数的Modifier
        int modifiers = constructors[0].getModifiers();
        // 获取Modifier字符串;
        String modifierStr = Modifier.toString(modifiers);
        // 获取构造函数的参数类型;
        Class<?>[] parameterTypes = constructors[0].getParameterTypes();
        // 通过构造函数进行对象构造;
        Glyph glyph3 = (Glyph) constructors[0].newInstance();
        // 获取类的所有接口;
        Class<?>[] interfaces = class3.getInterfaces();
        // 获取类的父类
        Class<?> superclass = class3.getSuperclass();
        // 获取类的所有方法,不会返回构造函数;
        Method[] methods = class3.getMethods();
        // 获取异常类型;Constructor和Method都继承自AccessibleObject
        Class<?>[] exceptionTypes = methods[0].getExceptionTypes();
        Class<?>[] exceptionTypes2 = constructors[0].getExceptionTypes();
        // 获取本地属性
        Field[] fields = class3.getDeclaredFields();
        // 取得接口或者父类的属性
        Field[] fields2 = class3.getFields();

    }

}

class Glyph implements icon {
    public Glyph() {

    }
}

interface icon {

}

 

Java反射机制示例

标签:

原文地址:http://www.cnblogs.com/stono/p/4819882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!