Skip to content

feiniaoqy/JavaReflectionDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

#JavaReflection 反射的学习 ##反射的概念 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高! ##反射机制的作用

  • 反编译:.class-->.java

  • 通过反射机制访问java对象的属性,方法,构造方法等; ##反射机制中的类

  • java.lang.Class;

  • java.lang.reflect.Constructor;

  • java.lang.reflect.Field;

  • java.lang.reflect.Method;

  • java.lang.reflect.Modifier; ##反射机制获取类有三种方法: /第一种方式: Class c1 = Class.forName("com.feiniaoqy.demo.Demo"); //第二种方式: //java中每个类型都有class 属性. Class c2 = Demo.class;

      //第三种方式:
      //java语言中任何一个java对象都有getClass 方法
      Demo demo = new Demo();
      Class c3 = demo.getClass(); //c3是运行时类
    

##获取类后通过无参构造函数创建对象: Class c = Class.forName("com.feiniaoqy.demo.Demo"); //创建此Class 对象所表示的类的一个新实例 Demo demo1 = (Demo) c.newInstance();

  • getDeclaredMethods()//获取所有的方法
  • getReturnType()//获得方法的放回类型
  • getParameterTypes()//获得方法的传入参数类型
  • getDeclaredMethod("方法名",参数类型.class,……)//获得特定的方法
  • getDeclaredConstructors()//获取所有的构造方法
  • getDeclaredConstructor(参数类型.class,……)//获取特定的构造方法
  • getSuperclass()//获取某类的父类
  • getInterfaces()//获取某类实现的接口

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages