如何通过类名运用反射技术获取一个类的所有方法、字段及其值?

2026-04-10 13:121阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何通过类名运用反射技术获取一个类的所有方法、字段及其值?

javaimport java.lang.reflect.Field;import java.lang.reflect.Method;import javax.swing.JOptionPane;

/** * 反射的小实例 */public class ReflectionExample { public static void main(String[] args) { String className=JOptionPane.showInputDialog(请输入类的全路径:); try { Class clazz=Class.forName(className); Field[] fields=clazz.getDeclaredFields(); Method[] methods=clazz.getDeclaredMethods();

System.out.println(成员变量:); for (Field field : fields) { System.out.println(field.getName()); }

如何通过类名运用反射技术获取一个类的所有方法、字段及其值?

System.out.println(成员方法:); for (Method method : methods) { System.out.println(method.getName()); } } catch (ClassNotFoundException e) { e.printStackTrace(); } }}

反射的小实例

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 …………

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

如何通过类名运用反射技术获取一个类的所有方法、字段及其值?

javaimport java.lang.reflect.Field;import java.lang.reflect.Method;import javax.swing.JOptionPane;

/** * 反射的小实例 */public class ReflectionExample { public static void main(String[] args) { String className=JOptionPane.showInputDialog(请输入类的全路径:); try { Class clazz=Class.forName(className); Field[] fields=clazz.getDeclaredFields(); Method[] methods=clazz.getDeclaredMethods();

System.out.println(成员变量:); for (Field field : fields) { System.out.println(field.getName()); }

如何通过类名运用反射技术获取一个类的所有方法、字段及其值?

System.out.println(成员方法:); for (Method method : methods) { System.out.println(method.getName()); } } catch (ClassNotFoundException e) { e.printStackTrace(); } }}

反射的小实例

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 …………