-
什么是反射?
反射机制是一个动态机制,允许我们在程序运行期间再确定对象的实例化以及方法和属性的调用。 -
为什么需要反射?
使用反射可以在程序运行在确定下面执行的内容,像生活中的“见机行事”,这样可以大大提高代码的灵活度 -
使用反射注意事项
反射机制有更多的内存开销和较慢的运行效率。所以不能过度依赖反射机制。 -
获取类名的方式
public class ReflectDemo1 {
public static void main(String[] args) throws ClassNotFoundException {
//1.最常见
//相当于String照镜子,cls就是反射的内容,包含方法构造
Class cls = String.class;
//Class类的对象就是反射机制
//每个被JVM加载过的类都会有且有一个Class的实例与之对应
//Class类对象中包含着它对应的类中包含的相关信息
//(类名,属性,方法,构造等)
//2.Class cls = <对象名>.getClass();
String str = "adfsdafas";
cls = str.getClass();
//3.全类名:包名+类名
cls = Class.forName("java.lang.String");
}
}
获得包下面所以类名和方法
Scanner scan = new Scanner(System.in);
System.out.println("请输入类名");
//java.lang.String
String className = scan.nextLine();
Class cls = Class.forName(className);
//获得当前Class类对象对应的类名
String name = cls.getName();
System.out.println(name);
//获得这个类中所有方法
Method[] methods = cls.getMethods();
System.out.println(methods.length);
for (Method m : methods){
System.out.println(m.getName());
}
}



