美文网首页
Java - 反射机制(reflction)

Java - 反射机制(reflction)

作者: 桑鱼nicoo | 来源:发表于2020-03-09 20:36 被阅读0次

Class类与java.lang.reflect类库一起对反射的概念进行了支持,该类库包含了Field、Method以及Constructor类。这些类型的对象是由JVM在运行时创建的,用以表示未知类里对应的成员。所以可以使Constructor创建新的对象,用get()和set()方法读取和修改与Field对象关联的字段,用invoke()方法调用Method()对象关联的方法。另外还可以调用getFields()、getMethods()和getConstructors()等方法,以返回表示字段、方法以及构造器的对象的数组。这样,匿名对象的类信息就能在运行时被完全确定下来,而在编译时不需要知道任何事情。

Class.forName()生成的结果在编译时不可知的。因此所有的方法特征签名信息都是在执行时被提取出来的。反射机制提供了足够的支持,使得能够创建一个在编译时完全未知的对象,并调用此对象的方法。

package com.sangyu.test.test21;

public class User {

    private int id;
    private String name;
    private int age;

    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public User(){}
    public User(int id,String name,int age){
        this.id = id;
        this.name = name;
        this.age = age;
    }
}
package com.sangyu.test.test01;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class ShowMethods {

    public static void main(String[] args) throws ClassNotFoundException {
        Class<?> c = Class.forName("com.sangyu.test.test21.User");
        Method[] methods = c.getMethods();
        Constructor[] constructors = c.getConstructors();
        for(Method method:methods){
            System.out.println(method);
        }

        System.out.println("");

        for(Constructor constructor:constructors){
            System.out.println(constructor);
        }
    }
}

getMethods()和getConstructors()方法分别返回Method对象的数组和Constructor对象的数组。

相关文章

  • Java - 反射机制(reflction)

    Class类与java.lang.reflect类库一起对反射的概念进行了支持,该类库包含了Field、Metho...

  • Java反射机制入门

    Java反射机制入门 一、什么是反射 JAVA反射机制(The JAVA reflection mechanism...

  • 反射之一

    总结内容源自一下文章粗浅看java反射机制反射机制应用实践谈谈java反射机制Java Reflection(反射...

  • 反射之二

    总结内容源自一下文章粗浅看java反射机制反射机制应用实践谈谈java反射机制Java Reflection(反射...

  • Java基础之反射

    Java基础之—反射(非常重要)Java中反射机制详解Java进阶之reflection(反射机制)——反射概念与...

  • 反射之三

    总结内容源自以下文章 粗浅看java反射机制 反射机制应用实践 谈谈java反射机制 Java Reflectio...

  • java反射机制

    java的反射机制 1 JAVA的反射机制是什么?反射机制能做什么?反射机制的优点与缺点2 认识 Class...

  • Java中反射的用途

    Java的反射机制是Java特性之一,反射机制是构建框架技术的基础所在。灵活掌握Java反射机制,对大家以后学习框...

  • Chapter 13 . 反射机制

    阅读原文 Chapter 13 . 反射机制 13.1 Java反射机制研究及应用 Java Reflection...

  • 详解Java反射机制(Reflection)

    详解Java反射机制(Reflection) 反射机制的作用 JAVA反射机制是在运行状态中,对于任意一个类,都能...

网友评论

      本文标题:Java - 反射机制(reflction)

      本文链接:https://www.haomeiwen.com/subject/ddhmdhtx.html