如何通过类名获取一个类的所有方法、字段和值?

更新于
2026-10-04 10:50:00
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计415个文字,预计阅读时间需要2分钟。

java反射的小例子import java.lang.reflect.Field;import java.lang.reflect.Method;import javax.swing.JOptionPane;

/** * 本类用于测试反射API,利用用户输入的类全路径 * 找到该类,获取其所有成员方法和属性 */public class ReflectionExample { public static void main(String[] args) { String className=JOptionPane.showInputDialog(请输入类的全路径:); try { Class clazz=Class.forName(className); Method[] methods=clazz.getDeclaredMethods(); Field[] fields=clazz.getDeclaredFields();

JOptionPane.showMessageDialog(null, 类: + className + \n\n方法:); for (Method method : methods) { JOptionPane.showMessageDialog(null, method.toString()); }

JOptionPane.showMessageDialog(null, \n属性:); for (Field field : fields) { JOptionPane.showMessageDialog(null, field.toString()); } } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(null, 找不到指定的类: + className); } }}

反射的小实例

import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.swing.JOptionPane; /** *本类用于测试反射API,利用用户输入类的全路径, *找到该类所有的成员方法和成员属性 */ public class MyTest { /** *构造方法 */ public MyTest(){ String classInfo=JOptionPane.showInputDialog(null,"输入类全路径");//要求用户输入类的全路径 try { Class cla=Class.forName(classInfo);//根据类的全路径进行类加载,返回该类的Class对象 Method[] method=cla.getDeclaredMethods();//利用得到的Class对象的自审,返回方法对象集合 for(Method me:method){//遍历该类方法的集合 System.out.println(me.toString());//打印方法信息 } System.out.println("********"); Field[] field=cla.getDeclaredFields();//利用得到的Class对象的自审,返回属性对象集合 for(Field me:field){ //遍历该类属性的集合 System.out.println(me.toString());//打印属性信息 } } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { new MyTest(); } } 运行的时候,我们输入javax.swing.JFrame,那么运行结果如下: public void javax.swing.JFrame.remove(java.awt.Component) public void javax.swing.JFrame.update(java.awt.Graphics) ………… ******** public static final int javax.swing.JFrame.EXIT_ON_CLOSE private int javax.swing.JFrame.defaultCloseOperation …………

本文共计415个文字,预计阅读时间需要2分钟。

java反射的小例子import java.lang.reflect.Field;import java.lang.reflect.Method;import javax.swing.JOptionPane;

/** * 本类用于测试反射API,利用用户输入的类全路径 * 找到该类,获取其所有成员方法和属性 */public class ReflectionExample { public static void main(String[] args) { String className=JOptionPane.showInputDialog(请输入类的全路径:); try { Class clazz=Class.forName(className); Method[] methods=clazz.getDeclaredMethods(); Field[] fields=clazz.getDeclaredFields();

JOptionPane.showMessageDialog(null, 类: + className + \n\n方法:); for (Method method : methods) { JOptionPane.showMessageDialog(null, method.toString()); }

JOptionPane.showMessageDialog(null, \n属性:); for (Field field : fields) { JOptionPane.showMessageDialog(null, field.toString()); } } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(null, 找不到指定的类: + className); } }}

反射的小实例

import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.swing.JOptionPane; /** *本类用于测试反射API,利用用户输入类的全路径, *找到该类所有的成员方法和成员属性 */ public class MyTest { /** *构造方法 */ public MyTest(){ String classInfo=JOptionPane.showInputDialog(null,"输入类全路径");//要求用户输入类的全路径 try { Class cla=Class.forName(classInfo);//根据类的全路径进行类加载,返回该类的Class对象 Method[] method=cla.getDeclaredMethods();//利用得到的Class对象的自审,返回方法对象集合 for(Method me:method){//遍历该类方法的集合 System.out.println(me.toString());//打印方法信息 } System.out.println("********"); Field[] field=cla.getDeclaredFields();//利用得到的Class对象的自审,返回属性对象集合 for(Field me:field){ //遍历该类属性的集合 System.out.println(me.toString());//打印属性信息 } } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { new MyTest(); } } 运行的时候,我们输入javax.swing.JFrame,那么运行结果如下: public void javax.swing.JFrame.remove(java.awt.Component) public void javax.swing.JFrame.update(java.awt.Graphics) ………… ******** public static final int javax.swing.JFrame.EXIT_ON_CLOSE private int javax.swing.JFrame.defaultCloseOperation …………