反射的基本应用

什么是反射

       反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。

如何通过反射获取类

        1.创建类


public class Apple {
	private Integer id=5;
	public String name="qqq";
		Integer age=18;
		
		public Integer getId() {
			return id;
		}
		public void setId(Integer id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public Integer getAge() {
			return age;
		}
		public void setAge(Integer age) {
			this.age = age;
		}
}
        2.写个测试类



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

public class Demo {
	public static void main(String[] args) {
		Class clazz = Apple.class;
		System.out.println(clazz.getSimpleName());//类名
		System.out.println("-----------------------------------------------");
		 
		Field[] fields = clazz.getDeclaredFields();
		for (Field field : fields) {
			
			System.out.print("属性名:"+field.getName());
			System.out.print(" 类型:"+field.getType());
			int modifiers = field.getModifiers();//修饰符默认为int类型需要转换为String类型进行显示
			System.out.println(" 修饰符:"+Modifier.toString(modifiers));
			
		}
		System.out.println("---------------------------------------------");
		/*Method[] methods = clazz.getMethods();*/
		Method[] methods = clazz.getDeclaredMethods();
		for (Method method : methods) {
			System.out.print("方法名称:"+method.getName());//获取方法名称
			int modifiers = method.getModifiers();//修饰符默认为int类型需要转换为String类型进行显示
			System.out.print(" 修饰符:"+Modifier.toString(modifiers));//获取String类型的修饰符
			System.out.println(" 返回类型:"+method.getReturnType());//获取方法的返回类型
			Class
   
   [] parameterTypes = method.getParameterTypes();//获取参数类型,是一个数组
			System.out.print("参数类型:(");
			for (Class
   
    class1 : parameterTypes) {//循环输出
				System.out.print(class1.getName()+",");
			}
			System.out.println(")");
			System.out.println();
		}
	}
}
       3.输出结果

Apple
-----------------------------------------------
属性名:id 类型:class java.lang.Integer 修饰符:private
属性名:name 类型:class java.lang.String 修饰符:public
属性名:age 类型:class java.lang.Integer 修饰符:
---------------------------------------------
方法名称:getName 修饰符:public 返回类型:class java.lang.String
参数类型:()

方法名称:getId 修饰符:public 返回类型:class java.lang.Integer
参数类型:()

方法名称:setName 修饰符:public 返回类型:void
参数类型:(java.lang.String,)

方法名称:setId 修饰符:public 返回类型:void
参数类型:(java.lang.Integer,)

方法名称:getAge 修饰符:public 返回类型:class java.lang.Integer
参数类型:()

方法名称:setAge 修饰符:public 返回类型:void
参数类型:(java.lang.Integer,)


总结

       一点一滴的积累是通向成功的唯一捷径,知识在于平常的积累,再简单的例子,他也有存在的意义。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值