广告
返回顶部
首页 > 资讯 > 精选 >Java反射中的类有哪些
  • 291
分享到

Java反射中的类有哪些

2023-06-29 01:06:57 291人浏览 八月长安
摘要

本文小编为大家详细介绍“Java反射中的类有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java反射中的类有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、什么是反射java.lang包提供java

本文小编为大家详细介绍“Java反射中的类有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java反射中的类有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    一、什么是反射

    java.lang包提供java语言程序设计的基础类,在lang包下存在一个子包:reflect,与反射相关的apis均在此处;

    官方对reflect包的介绍如下:

    Reflection enables Java code to discover infORMation about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and constructors to operate on their underlying counterparts, within security restrictions.
    The API accommodates applications that need access to either the public members of a target object (based on its runtime class) or the members declared by a given class. It also allows programs to suppress default reflective access control.

    java.lang.reflect官方介绍

    简单来说,反射机制就像类对照平静的湖面,湖面映射出类的字段、方法、构造函数等信息;反射机制不仅可以看到类信息,还能针对字段、方法等做出相应的操作。

    二、准备测试:实体类的创建

    为方便解释说明,首先创建一个实体类,用于测试使用

    package cn.byuan.entity;public class Student {        public String studentNo = "defaultStudentNo";        public String studentName = "defaultStudentName";        private String studentSex = "defaultStudentSex";        private Integer studentAge = 0;        public Student() {    }        public Student(String studentNo, String studentName, String studentSex, Integer studentAge) {        this.studentNo = studentNo;        this.studentName = studentName;        this.studentSex = studentSex;        this.studentAge = studentAge;    }        private Student(String studentSex, Integer studentAge) {        this.studentSex = studentSex;        this.studentAge = studentAge;    }        public String getStudentNo() {        return studentNo;    }    public Student setStudentNo(String studentNo) {        this.studentNo = studentNo;        return this;    }    public String getStudentName() {        return studentName;    }    public Student setStudentName(String studentName) {        this.studentName = studentName;        return this;    }    public String getStudentSex() {        return studentSex;    }    public Student setStudentSex(String studentSex) {        this.studentSex = studentSex;        return this;    }    public Integer getStudentAge() {        return studentAge;    }    public Student setStudentAge(Integer studentAge) {        this.studentAge = studentAge;        return this;    }    @Override    public String toString() {        return "Student{" +                "studentNo = " + this.studentNo + ", " +                "studentName = " + this.studentName + ", " +                "studentSex = " + this.studentSex + ", " +                "studentAge = " + this.studentAge +"}";    }        private String speak(String message) {        return this.studentName + " : " + message;    }}

    三、反射中的几个重要类及方法

    在了解反射前,先来梳理下一个类(Class)本身中包含了哪些内容。

    • 字段,字段又由修饰符、字段类型、字段名称、对应值等部分组成

    • 构造方法,构造方法可简单分为无参与有参两大类

    • 非构造方法,又称普通方法,方法由修饰符、返回值类型、方法名、形参表、方法体等部分构成

    本文所论述的反射中几个重要类及其对应方法正基于以上内容

    (一)反射中的重要类之Class

    Class类代表了类本身,类本身包含字段,构造方法,非构造方法等内容,因此使用反射的第一步就是获取对象所对应的Class类。

    仅就使用反射而言,我们需着重了解Class类的获取方式,下面给出实例

    Class类测试实例

    package cn.byuan.example;import cn.byuan.entity.Student;public class GetClassExample {    public static void main(String[] args) throws ClassNotFoundException {        // 获取 class 方式一: 通过类的全路径字符串获取 Class 对象        Class getClassExample1 = Class.forName("cn.byuan.entity.Student");        // 获取 class 方式二: 通过类名直接获取        Class getClassExample2 = Student.class;        // 获取 class 方式三: 通过已创建的对象获取对应 Class        Student student1 = new Student();        Class getClassExample3 = student1.getClass();    }}

    (二)反射中的重要类之Field

    Field类是对类中属性的描述,借助Class与Field的配合,我们可以了解类中有哪些字段,并做出相应处理;

    1. Field类的获取与常用方法

    Class类为我们提供了两个方法用以获取Field类:

    • getDeclaredFields():获取所有声明的字段(包括公有字段和私有字段)

    • getFields():仅可获取公有字段

    Field类代表了类中的属性字段,常用类中属性字段可笼统分为两种,公有字段(public)与私有字段(private);

    每个字段又具有四个属性:修饰符,字段类型,字段名称,对应值;Field也自然提供了对应方法对这四种属性进行获取:

    • getModifiers():获取字段修饰符相加值,想要获取明确标识需要通过Modifier常量的toString方法对相加值进行解码

    • getType():获取字段类型

    • getName():获取字段名称

    • get(Object):获取字段对应值

    下面给出实例

    Field类测试实例

    package cn.byuan.example;import cn.byuan.entity.Student;import java.lang.reflect.Field;import java.lang.reflect.Modifier;public class GetFieldExample {    public static void main(String[] args) throws IllegalAccessException {        Class studentClass = Student.class;        // 获取类字段的两个方法: getDeclaredFields, getFields        // 1. getDeclaredFields: 获取所有声明的字段(包括公有字段和私有字段)        Field[] declaredFieldArray = studentClass.getDeclaredFields();        printFieldInformation(declaredFieldArray);        // 2. getFields: 仅可获取公有字段        Field[] fieldArray = studentClass.getFields();        printFieldInformation(fieldArray);        // 获取字段对应值        Student student = new Student()                .setStudentSex("女")                .setStudentAge(18);        printFieldValue(student);    }        public static void printFieldInformation(Field[] fieldArray) {        for (Field fieldPart : fieldArray) {            System.out.println("直接打印类字段对象: " + fieldPart);            // 获取字段修饰符            String fieldModifier = Modifier.toString(fieldPart.getModifiers());            // 获取字段类型            String fieldType = fieldPart.getType().getName();            // 获取字段名称            String fieldName = fieldPart.getName();            System.out.println(fieldModifier + " " + fieldType + " " + fieldName);        }        System.out.println();    }        private static <T> void printFieldValue(T t) throws IllegalAccessException {        Field[] fieldValueArray = t                .getClass()                .getDeclaredFields();        for (Field fieldValuePart : fieldValueArray) {            // 对于有可能存在的 private 字段取消语言访问检查            fieldValuePart.setAccessible(true);            // 字段名称            String filedName = fieldValuePart.getName();            // 字段对应值            String fieldValue = fieldValuePart.get(t).toString();            System.out.println(filedName + " = " + fieldValue);        }    }}

    运行截图

    Java反射中的类有哪些

    (三)反射中的重要类之Constructor

    Constructor代表了某个类的构造方法,是用来管理所有的构造函数的类

    1. Constructor类的获取与常用方法

    Class类为我们提供了两个方法用以获取Constructor类:

    1. getDeclaredConstructors():获取所有构造方法

    2. getConstructors():仅可获取公有构造方法

    对于构造器,可简单将其分为两大类,无参构造器与带参构造器,构造器也是方法的一种,因此对于任意一构造器都由修饰符,方法名,形参表,方法体四部分组成;Constructor自然也为其组成部分提供了对应方法:

    1. 与字段类似,Constructors同样提供了getModifiers()方法:获取构造器修饰符相加值,想要获取明确标识需要通过Modifier常量的toString方法进行解码

    2. getName():获取构造器名称

    3. getParameterTypes():获取构造器参数列表

    下面给出实例

    Constructor类测试实例

    package cn.byuan.example;import cn.byuan.entity.Student;import java.lang.reflect.Constructor;import java.lang.reflect.Modifier;public class GetConstructorsExample {    public static void main(String[] args) {        Class studentClass = Student.class;        // 获取类构造器的两个方法: getDeclaredConstructors, getConstructors        // 1. getDeclaredConstructors: 获取所有构造方法        Constructor[] declaredConstructorArray = studentClass.getDeclaredConstructors();        printConstructorInformation(declaredConstructorArray);        // 2. getConstructors, 仅可获取公有构造方法        Constructor[] constructorArray = studentClass.getConstructors();        printConstructorInformation(constructorArray);    }        public static void printConstructorInformation(Constructor[] constructorArray) {        for (Constructor constructorPart : constructorArray) {            System.out.println("直接打印构造器对象: " + constructorPart);            // 获取构造器修饰符            String constructorModifier = Modifier.toString(constructorPart.getModifiers());            // 获取构造器名称            String constructorName = constructorPart.getName();            // 获取构造器参数列表            Class[] constructorParameterArray = constructorPart.getParameterTypes();            // 打印构造器参数列表            System.out.print(constructorModifier + " " + constructorName + "(");            for (Class constructorParameterPart : constructorParameterArray) {                System.out.print(constructorParameterPart.getName() + " ");            }            System.out.println(")");        }        System.out.println();    }}

    运行截图

    Java反射中的类有哪些

    3. 利用Constructor类实例化对象

    一般而言,我们关心的不只是获取到对象构造器的具体信息,更重要的是如何利用反射实例化对象,针对对象实例化,Constructor提供了两种类型的方法:

    1. getConstructor(Class<?>... parameterTypes):获取指定形参表的构造方法,可借助其获取无参/指定参数的构造方法;

    2. newInstance(Object ... initargs):通过形参表传递实例化对象参数,与getConstructor配合使用;

    注意:Class也存在newInstance()方法,但仅能用来调用类的无参构造器

    Constructor实例化对象测试实例

    package cn.byuan.example;import cn.byuan.entity.Student;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;public class ConstructorsInvokeExample {    public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {        Class studentClass = Student.class;        // Class 类的 newInstance 方法        studentClass.newInstance();        // 1. 调用公有无参构造器        Object object1 = studentClass                .getConstructor()                .newInstance();        System.out.println(object1.getClass());        // 2. 调用公有满参构造器        Constructor studentConstructorFull = studentClass                .getConstructor(String.class, String.class, String.class, Integer.class);        Object object2 = studentConstructorFull                .newInstance("2022001", "赵一", "男", 18);        System.out.println(object2);        // 3. 调用私有构造器        Constructor studentConstructorPrivate = studentClass                .getDeclaredConstructor(String.class, Integer.class);        // 私有构造器需将 accessible 设置为 true, 取消语言访问检查        studentConstructorPrivate.setAccessible(true);        Object object3 = studentConstructorPrivate                .newInstance("女", 19);        System.out.println(object3);    }}

    运行截图

    Java反射中的类有哪些

    (四)反射中的重要类之Method

    Method类描述了类的方法信息

    1. Method类的获取与常用方法

    Class类为我们提供了两个方法用以获取Method类:

    1. getDeclaredMethods():获取所有非构造方法

    2. getMethods():仅可获取公有非构造方法

    对于任意方法都可分为修饰符,方法名,形参表,方法体四部分;Method为其组成部分提供了对应方法:

    1. getModifiers():获取方法修饰符相加值,想要获取明确标识需要通过Modifier常量的toString方法进行解码

    2. getName():获取方法名称

    3. getParameterTypes():获取方法形参表

    Method类测试实例

    package cn.byuan.example;import cn.byuan.entity.Student;import java.lang.reflect.Method;import java.lang.reflect.Modifier;public class GetMethodExample {    public static void main(String[] args) {        Class studentClass = Student.class;        // 获取非构造方法的两个方法: getDeclaredMethods, getMethods        // 1. getDeclaredMethods: 获取所有非构造方法        Method[] declaredMethodArray = studentClass.getDeclaredMethods();        printMethodInformation(declaredMethodArray);        // 2. getMethods, 仅可获取公有非构造方法        Method[] methodArray = studentClass.getMethods();        printMethodInformation(methodArray);    }        public static void printMethodInformation(Method[] methodArray) {        for (Method methodPart : methodArray) {            System.out.println("直接打印非构造方法对象: " + methodArray);            // 获取非构造器方法修饰符            String methodModifier = Modifier.toString(methodPart.getModifiers());            // 获取非构造器方法名称            String methodName = methodPart.getName();            String methodReturnType = methodPart.getReturnType().getName();            // 获取非构造方法参数列表            Class[] constructorParameterArray = methodPart.getParameterTypes();            // 打印非构造方法参数列表            System.out.print(methodModifier + " " + methodReturnType + " " + methodName + "(");            for (Class methodParameterPart : constructorParameterArray) {                System.out.print(methodParameterPart.getName() + " ");            }            System.out.println(")");        }        System.out.println();    }}

    运行截图

    Java反射中的类有哪些

    3. 利用Method调用非构造方法

    与利用Constructor实例化对象相似,Method同样需要两个方法用以调用非构造方法

    1. getDeclaredMethod(方法名, 形参表数组): 获取所有构造方法

    2. invoke(对象实例, 参数数组):方法调用

    Method调用非构造方法测试实例

    package cn.byuan.example;import cn.byuan.entity.Student;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class MethodInvokeExample {    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {        Class studentClass = Student.class;        // 对于私有的非构造方法, 需要使用 getDeclaredMethod 进行获取        // getDeclaredMethod(方法名, 形参表数组)        Method studentSpeakMethod = studentClass.getDeclaredMethod("speak", new Class[]{String.class});        // 取消语言访问检查        studentSpeakMethod.setAccessible(true);        // invoke(对象实例, 参数数组)        Object object = studentSpeakMethod.invoke(studentClass.newInstance(), "Hello, world");        System.out.println(object);    }}

    运行截图

    Java反射中的类有哪些

    四、综合实战:利用反射机制编写对象拷贝工具

    在实际项目中,我们经常会遇到POJO与VO等类型对象进行相互转换的情况,如果直接进行转换则会使用大量的样板代码,为消除这样的代码,我们可以写一个简单的对象拷贝工具类进行解决;

    (一)业务分析

    通过反射获取源对象Field数组,并利用Field类提供的set/get方法实现同名属性的拷贝;

    (二)实体类准备

    创建Student类

    package cn.byuan.entity;public class Student {        public String studentNo = "defaultStudentNo";        public String studentName = "defaultStudentName";        private String studentSex = "defaultStudentSex";        private Integer studentAge = 0;        public Student() {    }        public Student(String studentNo, String studentName, String studentSex, Integer studentAge) {        this.studentNo = studentNo;        this.studentName = studentName;        this.studentSex = studentSex;        this.studentAge = studentAge;    }        private Student(String studentSex, Integer studentAge) {        this.studentSex = studentSex;        this.studentAge = studentAge;    }    public String getStudentNo() {        return studentNo;    }    public Student setStudentNo(String studentNo) {        this.studentNo = studentNo;        return this;    }    public String getStudentName() {        return studentName;    }    public Student setStudentName(String studentName) {        this.studentName = studentName;        return this;    }    public String getStudentSex() {        return studentSex;    }    public Student setStudentSex(String studentSex) {        this.studentSex = studentSex;        return this;    }    public Integer getStudentAge() {        return studentAge;    }    public Student setStudentAge(Integer studentAge) {        this.studentAge = studentAge;        return this;    }    @Override    public String toString() {        return "Student{" +                "studentNo = " + this.studentNo + ", " +                "studentName = " + this.studentName + ", " +                "studentSex = " + this.studentSex + ", " +                "studentAge = " + this.studentAge +"}";    }        private String speak(String message) {        return this.studentName + " : " + message;    }}

    创建StudentOut类

    package cn.byuan.api.out;import cn.byuan.entity.Student;public class StudentOut {        private String studentNo;        private String studentName;        private String studentSex;        private Integer studentAge;    public String getStudentNo() {        return studentNo;    }    public StudentOut setStudentNo(String studentNo) {        this.studentNo = studentNo;        return this;    }    public String getStudentName() {        return studentName;    }    public StudentOut setStudentName(String studentName) {        this.studentName = studentName;        return this;    }    public String getStudentSex() {        return studentSex;    }    public StudentOut setStudentSex(String studentSex) {        this.studentSex = studentSex;        return this;    }    public Integer getStudentAge() {        return studentAge;    }    public StudentOut setStudentAge(Integer studentAge) {        this.studentAge = studentAge;        return this;    }    @Override    public String toString() {        return "StudentOut{" +                "studentNo = " + this.studentNo + ", " +                "studentName = " + this.studentName + ", " +                "studentSex = " + this.studentSex + ", " +                "studentAge = " + this.studentAge +"}";    }}

    (三)工具类编写

    package cn.byuan.util;import cn.byuan.api.out.StudentOut;import cn.byuan.entity.Student;import java.lang.reflect.Field;public class BeanUtil {        public static <T> T copyObject(Object sourceObject, Class<T> destClass) {        if (sourceObject == null) {            return null;        }        try {            T destObject = destClass.newInstance();            copyField(sourceObject, destObject);            return destObject;        } catch (InstantiationException e) {            e.printStackTrace();                    } catch (IllegalAccessException e) {            e.printStackTrace();                    } catch (Exception e) {            e.printStackTrace();        }        return null;    }        private static void copyField(Object sourceObject, Object destObject) {        if (sourceObject == null || destObject == null) {            return;        }        // 获取源对象所有字段        Field[] sourceFieldArray = sourceObject.getClass().getDeclaredFields();        for (Field sourceFieldPart : sourceFieldArray) {            // 取消语言访问检查            sourceFieldPart.setAccessible(true);            String sourceFieldName = sourceFieldPart.getName();            try {                // 根据属性名称获取目标对象对应类字段                Field destField = destObject                        .getClass()                        .getDeclaredField(sourceFieldName);                destField.setAccessible(true);                destField.set(destObject, sourceFieldPart.get(sourceObject));            } catch (NoSuchFieldException e) {                e.printStackTrace();            } catch (IllegalAccessException e) {                e.printStackTrace();            }        }    }    public static void main(String[] args) {        Student student = new Student("2022001", "赵一", "男", 18);        StudentOut studentOut = copyObject(student, StudentOut.class);        System.out.println(studentOut);    }}

    运行截图

    Java反射中的类有哪些

    读到这里,这篇“Java反射中的类有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: Java反射中的类有哪些

    本文链接: https://www.lsjlt.com/news/321687.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Java反射中的类有哪些
      本文小编为大家详细介绍“Java反射中的类有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java反射中的类有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、什么是反射java.lang包提供java...
      99+
      2023-06-29
    • java反射创建类的方式有哪些
      Java反射可以通过以下几种方式来创建类的实例:1. 使用Class类的newInstance()方法:该方法会调用类的无参构造方法...
      99+
      2023-09-07
      java
    • java中有哪些反射API
      java中有哪些反射API?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明java.lang.class:代表一个类java.lang.reflect.M...
      99+
      2023-06-15
    • java反射的用处有哪些
      Java反射的用途如下:1. 动态加载类:通过反射可以在运行时动态加载类,而不是在编译时静态加载类。这样可以根据配置文件或用户输入的...
      99+
      2023-08-09
      java
    • 有关Java反射的问题有哪些
      这篇文章主要讲解了“有关Java反射的问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有关Java反射的问题有哪些”吧!反射可以修改final类型成员变量吗final我们应该都知道,...
      99+
      2023-06-15
    • java中实现反射的方法有哪些
      这篇文章将为大家详细讲解有关java中实现反射的方法有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;...
      99+
      2023-06-14
    • java中反射机制的作用有哪些
      本篇文章为大家展示了java中反射机制的作用有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象...
      99+
      2023-06-06
    • java反射机制的作用有哪些
      Java反射机制的作用有以下几个:1. 动态加载类:可以在运行时动态加载一个类,不需要在编译时确定类的全名。2. 动态创建对象:可以...
      99+
      2023-10-08
      java
    • java反射实现的方法有哪些
      在Java中,可以使用反射来实现以下方法:1. 获取类的信息:可以使用反射获取类的名称、修饰符、父类、接口、字段、方法等信息。2. ...
      99+
      2023-08-08
      java
    • java要用反射的原因有哪些
      使用反射的原因有以下几点:1. 动态加载类:通过反射可以在运行时动态加载需要使用的类,而不需要在编译时将类引入到代码中。这样可以实现...
      99+
      2023-08-09
      java
    • java获取反射的方法有哪些
      Java中获取反射的方法有以下几种:1. 通过Class类的静态方法获取反射:可以通过类的全限定名或者对象的getClass()方法...
      99+
      2023-09-26
      java
    • java反射获取方法有哪些
      Java反射获取方法有以下几种方式:1. 通过Class类的getMethod()方法获取指定名称和参数类型的公共方法。2. 通过C...
      99+
      2023-09-08
      java
    • Java反射机制有哪些特点
      Java反射机制有以下特点:1. 动态性:反射机制允许在运行时动态地获取类的信息,实例化对象和调用类的方法,而不需要在编译时确定类的...
      99+
      2023-10-07
      Java
    • Java反射机制知识有哪些
      本篇内容主要讲解“Java反射机制知识有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java反射机制知识有哪些”吧!一、什么是class类在面向对象的世界里,万物皆对象。类是对象,类是ja...
      99+
      2023-06-17
    • java中反射机制的使用场景有哪些
      这期内容当中小编将会给大家带来有关java中反射机制的使用场景有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式...
      99+
      2023-06-14
    • java反射机制有哪些优缺点
      Java反射机制具有以下优点:1. 动态性:反射允许在运行时获取类的信息并访问和操作类的成员,使得程序具有更高的灵活性和动态性。2....
      99+
      2023-09-07
      java
    • Java反射机制的主要功能有哪些
      这篇文章给大家分享的是有关Java反射机制的主要功能有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在java中,反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Java反射机制的主要功能:1...
      99+
      2023-06-14
    • Hibernate中有哪些映射类型
      Hibernate中有哪些映射类型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.Hibernate内置映射类型1).Java基本类型的Hibernate映射类型Java类型...
      99+
      2023-06-17
    • java反射获取包下所有类的操作
      我就废话不多说了,大家还是直接看代码吧~ public static void main(String[] args) { try { ...
      99+
      2022-11-12
    • C#反射相关知识有哪些
      这篇文章主要讲解了“C#反射相关知识有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#反射相关知识有哪些”吧!C#反射是什么?Reflection,中文翻译为反射。这是.Net中获取运...
      99+
      2023-06-17
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作