java 反射基本认识

java 反射基本认识

最近重新复习java反射的知识,有了新的理解。

class类?

在面向对象中,万事万物皆对象。类也是个对象,是java.lang.class类的实例对象。

public class ClassDemol {
 public static void main(String arg[]){
     //创建了Person 类的实例对象
     // 如何创建Person 类的类对象
     Person person = new pserson();
     //有三种方法表示
     //第一种
     Class c1 = Person.class;
     //第二种
      Class c2 = person.getClass();
      // 第三种
      Class.fromName("java.xx.xx");
 }
}

class Person{}

java 静态加载类和动态加载类

  • 在编译时期,会加载需要使用所有的类,成为静态加载类。比如 new 创建对象,那么该类在编译时期,就需要加载。
  • 在运行时期,会加载需要使用所有的类,成为动态加载类。比如 class 类对象的NewInstance()方法创建某个类的对象,再运行时期,需要加载。

class类的方法

 // 获取类类型
 class c = obj.getClass();
 //获取类的名称
 c.getName();
 //获取类的自身public 方法以及继承的public 方法
 Method[] ms= c.getMethod();
 //获取类的自身public 方法以及继承的public 方法
 Method[] ms= c.getMethods();
 //获取类的自身所有方法
 Method[] ms= c.getDeclareMethods();
 //获取类的某个方法返回类型的类型
 Class returntype =  ms[i].getReturnType();
 //获取类的某个方法参数类型的类型
 Class paramtype =  ms[i].getParamType();

方法反射

//获取相应的方法类类型
Method m = c.getMethod("printf",int.class,int.class);
//方法调用,可以调到相应的方法
m.invoke(c,19,19);

转载于:https://www.cnblogs.com/Lollipop_Hsu/p/11471219.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值