⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reflectiontest.java

📁 Java2核心技术卷一 配套源码,看了还不错
💻 JAVA
字号:
/**
 * @version 1.00 11 Mar 1997
 * @author Cay Horstmann
 */

import java.lang.reflect.*;
import corejava.*;

public class ReflectionTest
{  public static void main(String[] args)
   {  String name = Console.readLine
         ("Please enter a class name (e.g. java.util.Date): ");
      try
      {  Class cl = Class.forName(name);
         Class supercl = cl.getSuperclass();
         System.out.print("class " + name);
         if (supercl != null && !supercl.equals(Object.class))
            System.out.print(" extends " + supercl.getName());
         System.out.print("\n{\n");
         printConstructors(cl);
         System.out.println();
         printMethods(cl);
         System.out.println();
         printFields(cl);
         System.out.println("}");
      }
      catch(ClassNotFoundException e)
      {  System.out.println("Class not found.");
      }
   }


   public static void printConstructors(Class cl)
   {  Constructor[] constructors = cl.getDeclaredConstructors();

      for (int i = 0; i < constructors.length; i++)
      {  Constructor c = constructors[i];
         Class[] paramTypes = c.getParameterTypes();
         String name = c.getName();
         System.out.print(Modifier.toString(c.getModifiers()));
         System.out.print(" " + name + "(");
         for (int j = 0; j < paramTypes.length; j++)
         {  if (j > 0) System.out.print(", ");
            System.out.print(paramTypes[j].getName());
         }
         System.out.println(");");
      }
   }
   
   public static void printMethods(Class cl)
   {  Method[] methods = cl.getDeclaredMethods();

      for (int i = 0; i < methods.length; i++)
      {  Method m = methods[i];
         Class retType = m.getReturnType();
         Class[] paramTypes = m.getParameterTypes();
         String name = m.getName();
         System.out.print(Modifier.toString(m.getModifiers()));
         System.out.print(" " + retType.getName() + " " + name 
            + "(");
         for (int j = 0; j < paramTypes.length; j++)
         {  if (j > 0) System.out.print(", ");
            System.out.print(paramTypes[j].getName());
         }
         System.out.println(");");
      }
   }

   public static void printFields(Class cl)
   {  Field[] fields = cl.getDeclaredFields();

      for (int i = 0; i < fields.length; i++)
      {  Field f = fields[i];
         Class type = f.getType();
         String name = f.getName();
         System.out.print(Modifier.toString(f.getModifiers()));
         System.out.println(" " + type.getName() + " " + name 
            + ";");
      }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -