服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - Java教程 - Java反射机制的精髓讲解

Java反射机制的精髓讲解

2021-06-30 14:55李灿辉 Java教程

今天小编就为大家分享一篇关于Java反射机制的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

1,什么是反射?

java的反射,允许程序在运行时,创建一个对象,获取一个类的所有相关信息等。

2,class类

要了解反射,就绕不开class类。

我们平时开发的类,例如classa,一般会有一些属性,会有几个构造方法,也会有一些普通方法,我们还可以使用classa来创建对象,例如classa classa = new classa()

java程序在运行时,其实是很多类的很多个对象之间的协作。jvm如何管理这些类呢?它如何知道各个类的名称,每个类都有哪些属性和哪些方法呢?

jvm会给每个类,创建一个class类型的对象,来记录各个类的信息,包括类的名称,类有哪些属性,各个属性的类型,类有哪些方法,各个方法的名称参数列表返回值等。我们可以说classa是所有classa类型的对象的类,同理,我们也可以说,class是所有class类型对象的类,而class类型的对象,也就是其他的所有的类。

3,可以获取类的哪些信息呢?

可以获取类的名称,类的构造函数,类的属性,类的普通方法等。

4,如何使用获取到的类的信息呢?

首先看一下如何使用获取到的类的方法。

jvm提供了method类,来表示类的方法,我们获取到的一个类的方法,其实就是method的对象。

class获取方法的方式为,调用getmethod()方法,第一个参数为方法名称,后面是待获取的方法的参数的类型列表。

而调用获取到的方法时,也比较特殊,是调用methodinvoke方法,第一个参数为调用哪个对象的该方法,后面是需要给该方法传递的参数列表。

?
1
2
3
object obj = myclass.class.newinstance();
method method = myclass.class.getmethod("methodname", string.class, string.class);
method.invoke(obj, "a", "b");

jvm提供了constructor来表示类的构造方法,提供了field来表示类的属性,其使用方法与method的类似。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/li_canhui/article/details/84562302

延伸 · 阅读

精彩推荐
  • Java教程Java基于socket服务实现UDP协议的方法

    Java基于socket服务实现UDP协议的方法

    这篇文章主要介绍了Java基于socket服务实现UDP协议的方法,通过两个简单实例分析了java通过socket实现UDP发送与接收的技巧,需要的朋友可以参考下 ...

    wo_soul5542019-12-19
  • Java教程浅谈Strut2如何对请求参数的封装

    浅谈Strut2如何对请求参数的封装

    这篇文章主要介绍了浅谈Strut2如何对请求参数的封装,具有一定借鉴价值,需要的朋友可以参考下...

    hypmxy4382021-03-11
  • Java教程IDEA 开发多项目依赖的方法(图文)

    IDEA 开发多项目依赖的方法(图文)

    这篇文章主要介绍了IDEA 开发多项目依赖的方法(图文),本文讲一下关于使用IntelliJ IDEA基于Maven创建多模块项目的实际开发,非常具有实用价值,需要的朋友...

    yisun1234569902021-06-08
  • Java教程java将数据写入内存,磁盘的方法

    java将数据写入内存,磁盘的方法

    下面小编就为大家分享一篇java将数据写入内存,磁盘的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Chris-Green5262021-03-23
  • Java教程Intellij IDEA 添加jar包的三种方式(小结)

    Intellij IDEA 添加jar包的三种方式(小结)

    这篇文章主要介绍了Intellij IDEA 添加jar包的三种方式(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    擦肩而过9222021-05-24
  • Java教程Java+Mysql学生管理系统源码

    Java+Mysql学生管理系统源码

    这篇文章主要为大家详细介绍了Java+Mysql学生管理系统源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    HelloRoot4002020-05-21
  • Java教程深入理解java异常处理机制及应用

    深入理解java异常处理机制及应用

    本篇文章主要介绍了java异常处理机制及应用,异常处理机制是Java语言的一大特色。从异常处理的机制、异常处理的方法、异常处理的原则等方面介绍Java语...

    真实的归宿1542020-07-17
  • Java教程java ExecutorService使用方法详解

    java ExecutorService使用方法详解

    这篇文章主要为大家详细介绍了java ExecutorService使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    tengdazhang7709604362872020-07-09