Xml
反射
常见设计模式
什么是反射?
1.什么反射
2.如何获取class类对象
3.反射的基本操作
4.代码
Test-A部分
package Test;
public class A {
// public A(int a){}
public A(){}
public String name;
private int number;
public void a(){
}
public void b(int num){
System.out.println(num);
}
}
Test-Test部分
package Test;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args) throws Exception{
// A a = new A();
// A a1 = new A();
// System.out.println(a);
// System.out.println(a1);
//类对象获取方式一:
//"类名(类路径)字符串"
//通过类对象创建具体的实例(反射)
Class a =Class.forName("Test.A");
A a1 = (A)a.newInstance(); //通过无参构造器创建对象
System.out.println(a1);
// System.out.println(a.getSuperclass());
// //获取属性
// Field[] fields = a.getDeclaredFields();
// for(Field f:
// fields){
// System.out.println(f.getName());
//
// }
// Constructor[] constructors = a.getDeclaredConstructors();
// for (Constructor constructor:
// constructors) {
// A a2 = (A) constructor.newInstance();//通过构造器创建对象
// System.out.println(a2);
// }
//获取类中方法信息
Method[] methods = a.getDeclaredMethods();
for(Method method:
methods) {
System.out.println(method.getName());
}
// //类对象获取方式二:
// //通过class属性获取
// Class a1 = A.class;
// // 类对象获取方式三:
// A a3 = new A();
// Class a4 = a3.getClass();
}
}