Java连载120-反射机制获取构造方法和父类、父接口

一、使用反射机制来
(1)获取一个类;
(2)获取类的构造函数
(3)通过构造函数来获取一个对象

package com.bjpowernode.java_learning;
import java.lang.reflect.*;

public class D120_1_ConstructerOfClass {
  public static void main(String[] args) throws Exception{
    //1.获取类
    Class c = Class.forName("com.bjpowernode.java_learning.D120_Customer");
    
    //2.获取特定的构造方法
    Constructor con = c.getDeclaredConstructor(String.class,int.class);
    
    //3.创建对象
    Object o = con.newInstance("张三",25);
    System.out.println(o);
  }

}
class D120_Customer{
  String name;
  int age;
  
  D120_Customer(String name,int age){
    this.name = name;
    this.age = age;
    
  }
  
  public String toString() {
    return "Customer[" + name + "," + age + "]";
  }
}

120.1

二、关于类获取父类和父接口

package com.bjpowernode.java_learning;
import java.lang.reflect.*;

public class D120_2_ParentClassAndInterfaceOfClass {
  public static void main(String[] args) throws Exception{
    Class c = Class.forName("java.lang.String");
    
    //获取父类
    Class superClass = c.getSuperclass();
    
    System.out.println(superClass.getName());
    System.out.println("================");
        
      //获取父接口
      Class[] ins = c.getInterfaces();
      for(Class in:ins) {
        System.out.println(in.getName());
      }
  }
}

120.2

三、反射的缺点
(1)性能问题。反射机制不是直接执行代码,性能问题的程度取决于程序中是如何使用反射的,如果他作为程序运行中相对很少涉及的部分,缓慢的性能将不会是问题。
(2)使用反射会模糊程序内部实际要发生的事情。
四、源码:
D120_1_ConstructerOfClass.java
D120_2_ParentClassAndInterfaceOfClass.java
https://github.com/ruigege66/Java/blob/master/D120_1_ConstructerOfClass.java
https://github.com/ruigege66/Java/blob/master/D120_2_ParentClassAndInterfaceOfClass.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
120.3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值