返回顶部
首页 > 资讯 > 精选 >java中反射是什么意思
  • 746
分享到

java中反射是什么意思

2023-06-20 14:06:45 746人浏览 薄情痞子
摘要

这篇文章主要讲解了“java中反射是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中反射是什么意思”吧!目录一、反射概述二、常用api三、创建Class对象的四种方式一、反射

这篇文章主要讲解了“java中反射是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中反射是什么意思”吧!

目录
  • 一、反射概述

  • 二、常用api

  • 三、创建Class对象的四种方式

一、反射概述

Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意 对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象 (一个类只有一个Class对象),这个对象就包含了完整的类的结构信 息。我们可以通过这个对象看到类的结构,这个对象就像一面镜子,透 过这个镜子看到类的结构,所以我们形象的称之为反射。

二、常用api

java.lang.Class:代表一个类

java.lang.reflect.Method:代表类的方法

java.lang.reflect.Field:代表类的成员变量

java.lang.reflect.Constructor:代表类的构造器

static Class forName(String name) 返回指定类名 name 的 Class 对象

Object newInstance() 调用无参构造函数,返回该Class对象 的一个实例

getName() 返回此Class对象所表示的实体(类、 接口、数组类、基本类型或void)名称

Class getSuperClass() 返回当前Class对象的父类的Class对象

Class [] getInterfaces() 获取当前Class对象的接口

ClassLoader getClassLoader() 返回该类的类加载器

Class getSuperclass() 返回表示此Class所表示的实体的超类的Class

Constructor[] getConstructors() 返回一个包含某些Constructor对象的数组

Field[] getDeclaredFields() 返回Field对象的一个数组 Method

getMethod(String name,Class … paramTypes) 返回一个Method对象,此对象的形参类型为paramType

示例:

public class Person {    private String name;    private int age;    public Person() {        System.out.println("Person类被初始化了。。。。。^_^");    }    public Person(String name, int age) {        this.name = name;        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    @Override    public String toString() {        return "Person{" +            "name='" + name + '\'' +            ", age=" + age +            '}';    }}

反射

public class ClassDemo {    public static void main(String[] args) throws        Exception {        // 1. 创建Class对象        //Class<Person> clazz = (Class<Person>)        Class.forName("Person");        Class<?> clazz =Class.forName("Person");            // 2. 通过Class对象调用其方法            // 2.1. 通过反射来实例化对象            //Person person = clazz.newInstance();            Object o = clazz.newInstance(); // 此名就相当于        Person p = new Person()            // 2.2. 获取类的完整类名称(包名+类名)            String name = clazz.getName();        System.out.println(name);        // 2.3. 获取类的简单名称,就是类的名称,不含包名        System.out.println(clazz.getSimpleName());        // 2.4. 获取构造器        Constructor<?>[] constructors =            clazz.getConstructors();        for (Constructor<?> constructor :             constructors) {            System.out.println(constructor.getName());        }        // 2.5. 获取字段        Field[] fields = clazz.getFields();        for (Field field : fields) {            System.out.println(field.getName());        }        // 2.6. 获取方法        Method[] methods = clazz.getMethods();        for (Method method : methods) {            System.out.println(method.getName());        }    }}

三、创建Class对象的四种方式

public class Demo {    public static void main(String[] args) throws        Exception {        // 第一种方式:调用Class.forName()        Class clazz =Class.forName("java.lang.String");        // 第二种方式:通过类的字节码文件来创建        Class clazz1 = String.class;        // 第三种方式:通过调用对象的getClass()方法来创建        String str = new String();        Class clazz2 = str.getClass();        // 第四种:通过类装载器来创建        ClassLoader loader =String.class.getClassLoader();        Class<?> clazz3 =loader.loadClass("java.lang.String");    }}

感谢各位的阅读,以上就是“java中反射是什么意思”的内容了,经过本文的学习后,相信大家对java中反射是什么意思这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: java中反射是什么意思

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

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

猜你喜欢
  • java中反射是什么意思
    这篇文章主要讲解了“java中反射是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中反射是什么意思”吧!目录一、反射概述二、常用api三、创建Class对象的四种方式一、反射...
    99+
    2023-06-20
  • java的反射是什么意思?
    反射是Java的特征之一,是一种间接操作目标对象的机制。Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用...
    99+
    2019-02-10
    java 反射
  • Java中的反射机制是什么意思
    这篇文章给大家分享的是有关Java中的反射机制是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  今天我们就来讲讲java的反射机制。  当程序主动使用某个类的时候,如果该类还没有被加载到内存中,则系统会...
    99+
    2023-06-02
  • 反射型ddos是什么意思
    反射型ddos是一种新的变体,它并不直接攻击目标服务IP,而是利用互联网某些特殊服务开放的服务器,通过伪造被攻击者的 IP 地址、向有开放服务的服务器发送构造的请求报文,该服务器会将数倍于请求报文的回复数据发送到被攻击IP,从而对后者间接形...
    99+
    2024-04-02
  • 什么是java反射
    反射是啥?反射既然有“反”,就说明它是一个逆向的过程。那我们先来看看正向过程是怎样的。设计一个类,类实例化成对象,对象调方法或属性去实现一些功能。那反射是什么呢?不知道大家是否还记得上图,这是刚接触java时学到的知识。我自己的理解是现在是...
    99+
    2021-08-17
    java入门 java 反射
  • java中反射原理是什么
    这篇文章主要介绍了java中反射原理是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序...
    99+
    2023-06-14
  • Java中的反射指的是什么
    本篇内容主要讲解“Java中的反射指的是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中的反射指的是什么”吧!目录到底什么是反射呢??? 类的生命周期 Java反射框架主要提供以下功...
    99+
    2023-06-20
  • Java中反射的作用是什么
    本篇内容主要讲解“Java中反射的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中反射的作用是什么”吧!前言今天说Java模块内容:反射。反射介绍正常情况下,我们知晓我们要操作...
    99+
    2023-06-15
  • java中“...”是什么意思
    解释:可变长参数,就是这个位置可以传入任意个该类型参数,简单来说就是个数组。如果是形参里面出现,表示的是可变参数,即表示的传入的参数个数是可变,你传多少个参数都被放到一个数组里面。例如:public static void dealArra...
    99+
    2020-02-17
    java基础 java ... 意思
  • 什么是java反射机制
    java:“一切即对象”,感觉java语言本身在不断践行着这句话。java反射机制的基础来源于一个Class类,我们可以通过这个类里面的方法来对每一个类进行读取、实例化等。对象表示或封装一些数据。一个类被加载后,jvm会创建一个对应该类的C...
    99+
    2019-08-24
    java入门 java 反射机制
  • java反射机制是什么
    这篇文章主要介绍了java反射机制是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,...
    99+
    2023-06-14
  • java什么反射?
    java什么反射?反射是Java的特征之一,是一种间接操作目标对象的机制。JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象...
    99+
    2016-04-05
    java教程 java 反射
  • Cassandra中反熵指的是什么意思
    在Cassandra中,反熵是指一个分区中数据的不确定性程度。熵是一个统计量,衡量数据在分区中的分布均匀程度。反熵则是指数据在分区中...
    99+
    2024-04-02
  • java中的“=”是什么意思?
    赋值运算符“=”:(推荐:java视频教程)作用:将运算符右边的表达式的返回值赋值给左边的变量或者是final 修饰的变量。左边:变量,或者是 final修饰的变量右边:可以是任意表达式(返回的值的类型要和左边的兼容)。=是一个赋值运算符,...
    99+
    2022-01-13
    java
  • java中this是什么意思?
    this用在类内部,表示类实例本身。this关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性。java中this用法1、当局部变量和成员变量重名的时候,在方法中使用this表示成员变量以示区分。class Demo{ ...
    99+
    2022-04-19
    java教程 java this
  • java中for是什么意思?
    在java中,for是一种关键字,是一种循环结构的引导词。for关键字用于指定一个在每次迭代结束前检查其条件的循环。for循环,使一些循环结构变得更加简单;for循环执行的次数是在执行前就确定的。for循环是学习java常用的语句之一,是最...
    99+
    2019-06-30
    java教程 java for
  • java中的“=”是什么意思
    一、对变量而言等于号具有赋值的作用,比如说a=3,就是把3赋值于a。这个是很简单的,大家都经常赋值,除了判断要双等于号外,但单等于号在初始化对象的时候进行赋值。二、对引用对象而言等于号具有传引用(隐式指针)的作用,这个也不难理解,比如说指针...
    99+
    2015-04-04
    java入门 java = 意思
  • java中api是什么意思
    API概念API(Application Programming Interface) : 应用程序编程接口。举例:编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这...
    99+
    2016-10-11
    java基础 java api 意思
  • Java中Object是什么意思
    这篇文章主要介绍Java中Object是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!public class TestObject {public static&nb...
    99+
    2023-06-02
  • java中private是什么意思
    在Java中,private是一种访问修饰符,用于控制类中的成员(变量或方法)的访问权限。当一个成员被声明为private时,它只能...
    99+
    2023-08-24
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作