リフレクション
注釈と一緒に使用すると、特に強力な反射注釈、自然なペアになります
クラスはどのようにロードされますか?
動的言語と静的言語。私はそれが何であるかを知っています、要約する必要はありません。
リフレクションのため、Javaは準動的言語と呼ぶことができます。
クラスのすべての情報を取得するためにリフレクションを許可する
クラスcのClassオブジェクトは1つだけです。これは、JVMにロードされた.classファイルに対応します。クラスにはClassオブジェクトが1つしかありません。つまり、作成するオブジェクトの数に関係なく、クラスオブジェクトは1つしかありません。
インスタンス化されたオブジェクト-----> getClass()メソッドによってクラスを取得------->完全な「パッケージクラス」名を取得します。
リフレクションを通じてクラスを取得し、
クラスオブジェクトを取得する5つの方法。
public static void main(String[] args) throws ClassNotFoundException {
Person person = new Student ();
System.out.println ("这个人是"+person.name);
//方法一:由对象实例.getClass(),获取
Class c1 = person.getClass ();
//方法二L:由类的完整路径名获取Class.forName("Reflection.Student");
Class c2 = Class.forName ("Reflection.Student");
System.out.println (c1);
System.out.println (c2);
//方法三:直接由已知类名获取类的实例
Class c3 = Student.class;
System.out.println (c3);
//方法四:基本的包装类都有一个Type属性,包装类获取类的实例
Class c4 = Integer.TYPE;
System.out.println (c4);
//方法五:由子类获取父类的Class对象
Class c5 = c1.getSuperclass ();
System.out.println (c5);
}