• 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




  • 相关阅读:
    将json的时间格式转换成正常的时间格式
    Log4Net
    “我记录”开发框架
    面诊治病图文百科1000问
    手脚治病养生图文百科1000问
    生活真需要:1288个实用偏方
    很老很老的老偏方——对症自疗奇效方全集
    边上班边养生(套装共10册)
    五谷杂粮养生一本全
    现代生活知识百科(全4册)
  • 原文地址:https://www.cnblogs.com/morningdew/p/5619385.html
Copyright © 2020-2023  润新知