Java--反射

反射就是程序在运行时能够获取自身的信息,在java中,只要给定类的名字, 就可以通过反射机制来获得类的所有信息。
反射可以实现动态创建对象和编译,体现出很大的灵活性,通过反射,类中有什么信息,它就可以获得什么信息。

  1. 获取完整的包名,类名:
public class test {
           public static void main(String[] args) throws Exception {
              test t = new test();
              t.getClass().getName();    
           }
}
  1. 创建对象:
Class<?> clazz =Class.forName("XXX"); 
//创建此Class 对象所表示的类的一个新实例
Object obj = clazz.newInstance();
  1. 获取所有属性:
Class<?> clazz = Class.forName("XXX"); 
//获取所有的属性
Field[] fs = clazz.getDeclaredFields();
//获取属性为XXX的属性
Field idF = c.getDeclaredField("XXX"); 
  1. 获取所有方法:
Class<?> clazz = Class.forName("XXX"); 
Method method[] = clazz.getMethods();
  1. 调用某个类的方法:
Class<?> clazz = Class.forName("XXX"); 
Object obj = clazz.newInstance();
// 获取XXX类中的method1方法
Method method2 = clazz.getMethod("method1");
//调用obj(clazz.newInstance())类中method1方法
Method1.invoke(obj);
//如果这个类的方法method2需要传递参数
Method method2 = clazz.getMethod("method2", int A, String B);
method2.invoke(obj, paramter1, paramter2…);
  1. 操作某个类的属性:
Class<?> clazz = Class.forName("XXX"); 
//对AAA属性赋值
Field field = clazz.getDeclaredField("AAA");
field.setXXX(BBB);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概述 1、Java反射机制(Java-Reflect): 在运行状态中,对于任意一个类,都能够知道这个类中的所...
    年少懵懂丶流年梦阅读 9,959评论 0 5
  • 上期作业: 单向链表的删除如图所示 但在队列中,是在头部或在尾部插入数据,往后或往前交换数据的方式达到目的,看需求...
    Wu巧不成阅读 1,693评论 0 0
  • Class与class假如把class看做是一张图纸的话,那根据图纸加工出来的零件就是一个个的instance(实...
    日三省阅读 1,774评论 0 0
  • 1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数、...
    Ten_Minutes阅读 3,552评论 0 4
  • 1.反射机制是什么: 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,...
    蛮大人我们走阅读 2,726评论 0 0

友情链接更多精彩内容