java反射的应用

使用java的反射功能,获得class类的各种信息


要分析的是student这个类,这个类的源码为

package com.j.test;

/**
 * Created by brady on 15-1-15.
 */
public class Student {
    int age;
    String name;
    public int getDay( int yearDay ){
        int aa = 0;
        aa = age*yearDay;
        return aa;
    }
}

通过java的反射功能可以打印出student类里面的方法名,方法的参数等信息

package com.j.test;

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

public class Operate {

    public static void main(String[] args){
        Class s = Student.class;

        // 获得变量类型
        Field[] f = s.getFields();
        System.out.print("变量:");
        for (Field fl : f){
            System.out.print( fl.getClass().getName() );
        }
        System.out.println();

        // 获得对象的方法名
        Method[] methods = s.getMethods();
        for( Method m : methods ){
            System.out.print("方法名:" + m.getName() + " ");

            // 获得参数名
            Class[] p = m.getParameterTypes();
            System.out.print("参数为:" );
            for( Class pl : p ){
                System.out.print(pl.getName() + " ");
            }

            // 获得方法返回值类型
            Class rt = m.getReturnType();
            System.out.print("返回值类型为:" + rt.getName() + " ");

            System.out.println();
        }
    }
}

可以运行查看到console的结果

变量:
方法名:getDay 参数为:int 返回值类型为:int 
方法名:wait 参数为:long int 返回值类型为:void 
方法名:wait 参数为:long 返回值类型为:void 
方法名:wait 参数为:返回值类型为:void 
方法名:equals 参数为:java.lang.Object 返回值类型为:boolean 
方法名:toString 参数为:返回值类型为:java.lang.String 
方法名:hashCode 参数为:返回值类型为:int 
方法名:getClass 参数为:返回值类型为:java.lang.Class 
方法名:notify 参数为:返回值类型为:void 
方法名:notifyAll 参数为:返回值类型为:void 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值