Как использовать свое отражение в Java-21

Рефлексия мощный подход к анализу классов во время исполнения. Если новые классы добавить в ваше приложение динамического отражения затем используется для получения структуры класса.

Отражения используются специальные виды Java-класса: класс. Объект класса типа может содержать всю информацию о классе и геттер методы получения этой информации.

Этот пример кода извлекает структуре класса String. Он будет отображать имя конструкторов, заявил поля и методы к консоли.


import java.lang.reflect.Constructor;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

public class ReflectionExample {



  public static void main(String[] args) {

    try {

      // Creates an object of type Class which contains the information of 

      // the class String

      Class cl = Class.forName("java.lang.String");



      // getDeclaredFields() returns all the constructors of the class.

      Constructor cnst[] = cl.getConstructors();



      // getFields() returns all the declared fields of the class.

      Field fld[] = cl.getDeclaredFields();



      // getMethods() returns all the declared methods of the class.

      Method mtd[] = cl.getMethods();

      System.out.println("Name of the Constructors of the String class");



      for (int i = 0; i < cnst.length; i++) {

        System.out.println(cnst[i].getName());

      }



      System.out.println("Name of the Declared fields");



      for (int i = 0; i < fld.length; i++) {

        System.out.println(fld[i].getName());

      }



      System.out.println("Name of the Methods");



      for (int i = 0; i < mtd.length; i++) {

        System.out.println(mtd[i].getName());

      }



    catch (ClassNotFoundException e) {

      e.printStackTrace();

    }

  }



}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>