zoukankan      html  css  js  c++  java
  • Java Reflection API | Java.lang.Class

    ref: http://www.studytonight.com/java/reflection-api

    Reflection API

    reflection means ability of a software to analyze itself. In java, Reflection API provides facility to analyze and change runtime behavior of a class, at runtime

    For Example, using reflection at the runtime you can determine what method or modifiers a class supports

    What is reflect package ?

    java.lang.reflect package encapsulates serveral important interface and classes. These classes and interface define methods which are used for reflection

     class            description

    ----------------------------------------------------------------------------------------------------------

    Array            allow you to dynamically created and manipulate arrays

    Constructor         gives info abt constructor of a class

    Field              provides info abt field

    Method            procide info abt method

    Modifier           provide info abt class and member access modifier

    Proxy             supports dynamic proxy classes

    java.lang.Class is another important class used in Reflection API

    Uses of Reflection

    1. Developing IDE
    2. Debugging and Test tools

    3. Loading drivers and providing dynamic info

    Disadvantages of Reflection

    1. Low performance

    2. Security risk

    3. Violation of OOPs concept

    ************************* cut**************************

    Reflection Class

    java.lang.Class 

    Class is a final class injava.lang package which extends Object class. Instance of this class 

    represents classes and interfaces in a running java application. It is used to analyze and change dynamic behavior of a class at runtime

     

    Some Important Methods of java.lang.Class class

    This class defines several methods using which we can get info about methods, constructors, modifiers and members of a class at runtime

    forName()    

    1. this method takes fully qualified name of classes or nterfaces as its argument and return instance 

       of the class associated with it. 

    2. static Class<?> forName(String className)

    class Student{}
    class Test
    {
     public static void main(String args[])
     {
      Class c = Class.forName("Student");
      System.out.println(c.getName());
     }
    }
    output: Student


    getConstructors() and getDeclaredConstructors()

    1. getConstructors() returns array of Constructors object that represent all the public constructors of the invoking object. This method only returns public constructor. getDeclaredConstructors() will return all constructors

    Constructor< ?>[] getConstructors();
    Constructor< ?>[] getDeclaredConstructors();

    Example using getConstructors() and getDeclaredConstructors() method

    Class c = Class.forName("Student");
      Constructor< Student>[] ct = c.getConstructors();
      for(int i=0; i< ct.length; i++)
        { System.out.println(ct[i]); }
      Constructor< Student>[] cdt = c.getDeclaredConstructors();
      for(int i=0;i< cdt.length;i++)
        { System.out.println(cdt[i]);}
    
    output:
      public Student()
      public Student()
      Student(java.lang.String)
    
    

    getMethods() and getDeclaredMethods()

    getFields() and getDeclaredFields()

    Example using getFields() and getDeclaredFields() method




  • 相关阅读:
    ASP.NET MVC 以Stream 下载文件
    ITextSharp 初次接触
    Easyui中tree组件实现搜索定位功能及展开节点定位
    lodop 打印控件的使用
    XML IList<T> TO DataSet TO DataTable 相互转换
    JSONToObejct 问题 part 1
    可以动态添加图片的轮播插件
    防止机器注册
    sqlServer 取每组的前几条数据
    log4net 动态设定日志文件名
  • 原文地址:https://www.cnblogs.com/morningdew/p/5619385.html
Copyright © 2011-2022 走看看