首页 > 技术文章 > Java连载120-反射机制获取构造方法和父类、父接口

ruigege0000 2020-06-05 00:19 原文

一、使用反射机制来

(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 + "]";

  }

}

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

 

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());

      }

  }

}

三、反射的缺点

(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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 

 

推荐阅读