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