day08——反射

在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中:

Class类:代表一个类。

Field 类:代表类的成员变量(成员变量也称为类的属性)。

Method类:代表类的方法。

Modifier类:代表修饰符。

Constructor 类:代表类的构造方法。

Array类:提供了动态创建数组,以及访问数组的元素的静态方法。

代码展示:

package demo2;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.lang.reflect.Constructor;


public class demo1 {
        public static void main(String[] args) {
            student student=new student();
            Class clastu= student.getClass();
            Field[] fields=clastu.getDeclaredFields();
            System.out.println(Arrays.toString(fields));

            try {
                Field field=clastu.getDeclaredField("name");
                System.out.println("field"+field);
                Field[] fields1=clastu.getDeclaredFields();
                System.out.println("fields1"+fields1);
                System.out.println(Arrays.toString(fields1));
            } catch (NoSuchFieldException e) {
                e.printStackTrace();
            }
            try {
                Method method=clastu.getMethod("hh",String.class);
                System.out.println("——————————————");
                System.out.println("method"+method);
                System.out.println("——————————————");
                Method[] methods=clastu.getMethods();
                System.out.println("methods"+methods);
                System.out.println(Arrays.toString(methods));
                System.out.println("——————————————");
                Method[]  methods1=clastu.getMethods();
                System.out.println("methods"+Arrays.toString(methods1));

                int num= clastu.getModifiers();
                System.out.println("num:"+num);

                int modifiers = clastu.getModifiers();
                System.out.println(modifiers);

                Constructor<?>[] constructors = clastu.getConstructors();
                System.out.println(constructors);

                Constructor<?>[] declaredConstructors = clastu.getDeclaredConstructors();
                System.out.println(declaredConstructors);

            } catch (NoSuchMethodException e) {
                e.printStackTrace();
        }
    }
}

 

总结:

1.反射,为后面理解框架做铺垫

2.反射 Class 

  Method 方法

  Field 属性

  Constructer 构造器

  Modifier 修饰符

3.这些类都是在reflect反射包中提供的,这些类有助于我们获取类以及类中的属性,方法,访问修饰符,从而让我们能够得到类相关的具体信息.

 

 

posted @ 2020-08-24 22:40  二零二零  阅读(105)  评论(0编辑  收藏  举报