说说对java反射的理解,使用反射如何获取一个类的所有方法,使用反射需要注意哪些问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了说说对java反射的理解,使用反射如何获取一个类的所有方法,使用反射需要注意哪些问题?相关的知识,希望对你有一定的参考价值。

反射说白了就是可以获得一个类的所有信息,主要包括方法和属性两部分。
1.获得方法包括获得方法的名称,方法的返回类型,方法的访问修饰符,以及通过反射执行这个方法。
2.获得属性包括属性的名称,类型,访问修饰符,以及这个属性的值。
这些获得都有相应的API提供操作。

举个例子:
先定义一个类,有age这个属性,以及age的get和set方法:

public class TestRflectionFather
public int age =32;
public int getAge()
return age;

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



然后操作获得所有方法:

import java.lang.reflect.Method;
public class Testmain
public static void main(String[] args) throws Exception
Class clazz = Class.forName("TestRflectionFather");
Method[] methods =clazz.getDeclaredMethods();
for(Method me:methods)

System.out.println(me.getName());





//最后输出
getAge
setAge
参考技术A 使用Class.forName() 加载一个类 要注意的是参数是完整类名
Class clazz= Class.forName("完整类名") ;
Method[] m = clazz.getDeclaredMethods(); 这样就获得了这个类里所有的方法

Method[] m = clazz.getMethods(); 这个是获得所有的方法 包括父类的

由浅入深理解----java反射技术

java反射机制详解

  java反射机制是在运行状态下,对任意一个类可以获取该类的属性和方法,对任意一个对象可以调用其属性和方法。这种动态的获取信息和调用对象的方法的功能称为java的反射机制


  1. class<?>类,在java.lang包下面,class类的实例表示正在运行的java应用程序中的类和接口                                       ?、class是一个类,一个描述类的类(也就是描述类的本身),封装了描述字段的Field、方法Method和构造器的Constructor等属性               ?、对象照镜子后可以得到的信息(某个类的数据成员、方法和构造器、某个类到底实现了那些方法)                                   ?、对于每个类而言,JRE都为其保留一个不变的Class类型的对象                                                       ?、Class对象只能有系统创建对象                                                                          ?、一个类在jvm中只会有一个实例                                                                           注意:class没有公共构造方法,class是在加载类时由java虚拟机已经调用类的加载器中的defineClass方法自动加载的、                
  2. 、继承了java.lang.Object实现了Serializable、AnnotatedElement、GenericDeclaration、Type、
  3. 、涉及的相关方法   
  4. 、反射的好处 :大大增强了程序的可扩展性
  5. 、反射的基本步骤  1、获取Class对象 2、实例化对象 3、访问对象的属性、方法等。。 
  6. 、获取此Class对象有三种方式   Class.forName(classname) 用于做类加载 2、obj.getClass()用于获得对象的类型 3、类名.class
  7. 、创建对象的两种方式  1、调用空参数的构造函数 2、调用带参数的构造函数 
  8. 、利用newInstance() 创建对象 ,调用的对象必须有无参的构造器
  9. 、ClassCloader类加载器                                                                               类加载器是用来把类装载到jvm中,jvm规范中定义了两种类加载器,启动类加载器和用户自定义类加载器。jvm在运行时会产生三个类加载器组成的 初始化加载器层次结构 引导类加载器、扩展类加载器和  系统类加载器                                                          

以上是关于说说对java反射的理解,使用反射如何获取一个类的所有方法,使用反射需要注意哪些问题?的主要内容,如果未能解决你的问题,请参考以下文章

Java中反射机制的理解

java学习——反射机制

java 面向对象(三十八):反射 Class类的理解与获取Class的实例

Java 反射之Class类的理解以及获取Class的实例

java反射的理解

Java Demo 学习 理解 反射机制 (基础学习)