第十八章(第三部分)通过反射查看类的信息

18.3.1获得Class对象
在java程序中获得Class对象通常有如下三种方式。
–1.使用Class类的forName()静态方法。该方法需要传入字符串参数,该字符串参数的值是某个类的全限定类名(必须添加完整包名)
–2调用某个类的class属性来获得该类对应的Class对象,例如Person.class将会返回Person类对应的Class对象
–3调用某个对象的getClass方法,该方法是java.lang.Object类中的一个方法,所以所有的对象都可以调用该方法,该方法将返回该对象所属类对应的Class对象。

大部分时候都使用Person.class 这种方法
这种方法的优势:
1.代码更加安全。程序在编译阶段就可以检查需要访问的Class对象是否存在
2.程序性能更好。以为这种方式无需调用方法,所以性能更好。

java8新增的方法参数反射

示例

package com.imust.regular_Expression;

import java.lang.reflect.Method;
import java.util.List;

import org.omg.Dynamic.Parameter;

class Test {

    public void replace(String str,List<String> list){}

}

public class MethodParameterTest{

    public static void main(String[] args) {

        //获取String的类
        Class<Test> clazz = Test.class;
        Method replace = clazz.getMethod("replace", String.class,List.class);
        //获取指定方法的参数个数
        System.out.println(replace.getParameterCount());
        //获取replace所有的参数信息
        Parameter[] parameters = replace.getParameters();
        int index = 1;
        //遍历所有参数
        for(Parameter p: parameters){
            if(p.isNamePresent()){
                System.out.println("第"+index+"个参数信息");
                System.out.println("参数名"+p.getName());
                System.out.println("形参类型"+p.getType());
                System.out.println("泛型类型"+p.getParameterizedType());
            }
        }
    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值