java 反射调用成员方法
public static GenericDialog showScreenshotDialog(JTextComponent area2, int width, int height){ Class clazz=area2.getClass(); Object obj=null; Method m = null; try { m = clazz.getMethod("showScreenshotDialog", new Class[]{int.class,int.class}); m.setAccessible(true); obj=m.invoke(area2, width,height); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } if(null==m){//抛异常 :NoSuchMethodException GenericDialog genericDialog= screenshotDialog; Point point= area2.getLocationOnScreen(); genericDialog.setBounds(point.x,point.y,width,height); genericDialog.launchFrame(); return genericDialog; } return null; } public static GenericDialog getScreenshotDialog(JTextComponent area2) { return (GenericDialog) getReflectGetMethod(area2, "getScreenshotDialog", null, null); } public static JDialog getMaxDialog(JTextComponent area2) { return (JDialog) getReflectGetMethod(area2, "getMaxJDialog", null, null); } public static void closeMaxDialog(JDialog area2) { getReflectGetMethod(area2, "closeDialog", null, null); } public static void setMaxDialog(JTextComponent area2, Object dialog, Class clazz) { getReflectGetMethod(area2, "setMaxJDialog", dialog, clazz); } public static Integer getMaxStatus(JTextComponent area2) { return (Integer) getReflectGetMethod(area2, "getMaxStatus", null, null); } public static void setMaxStatus(JTextComponent area2, int maxStatus) { getReflectGetMethod(area2, "setMaxStatus", maxStatus, null); } public static Object getReflectGetMethod(Object area2, String methodName, Object param, Class clazz2) { Class clazz=area2.getClass(); Object obj=null; Method m; try { if (clazz2 == null && null != param) { clazz2 = param.getClass(); } if (null == clazz2) { m = clazz.getMethod(methodName, new Class[]{}); } else { m = clazz.getMethod(methodName, new Class[]{clazz2}); } m.setAccessible(true); if (null == param) { obj = m.invoke(area2); } else { obj = m.invoke(area2, param); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return obj; } public static Map<String, ActionCallback> getActionCallbackMap(JTextComponent area2) { return (Map<String, ActionCallback>) getReflectGetMethod(area2, "getActionCallbackMap", null, null); }
相关推荐
Java反射机制,万物皆对象,class也是一个类的对象,通过类类型,反射获得类的成员属性,构造方法,成员方法,并调用类中的方法,也可以调用私有方法。
3.获取成员方法 4.获取成员变量 5.反射数组 6.通过反射配置文件内容 7.通过反射越过泛型检查 8.其他一些文本笔记 读者需要补充的知识点我来说一下,补充: 1.反射数组应用 2.反射main方法 3.反射代理(设计模式) 4....
java反射机制核心代码,小弟一直弄不明白,怎么通过反射来调用私有成员方法,看了这个后,你可以随心调用private方法,和属性,记得添加setAccessable(true),哦,要不还是不行,如:method.setAccessable(true);
什么是反射 Class类的介绍 如何用Class类获得类的构造方法、成员属性、成员方法 利用java反射机制动态创建对象 利用java反射机制动态调用成员方法和改变成员变量
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java...
调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。Java 反射机制主要提供 了以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的...
都能够调用它的任意一个方法,常见的应用如下 逆向代码 ,例如反编译 与注解相结合的框架 例如Retrofit 单纯的反射机制应用框架 例如EventBus 2.x 动态生成类框架 例如Gson Java高级程序设计实战教程第三章-Java反射...
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java...
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java...
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...
编写Student类,类中包含学生姓名,学号等私有数据成员。 使用JAVA反射机制修改一个学生对象的私有数据成员(不允许调用setters)
Java反射机制主要提供了以下功能: l 在运行时判断任意一个对象所属的类; l 在运行时构造任意一个类的对象; l 在运行时判断任意一个类所具有的成员变量和方法; l 在运行时调用任意一个对象的方法; l 生成...
这种动态获取信息以及动态调用对象方法的功能成为java反射机制。 2. java 文件和 .class 文件的关系 java 文件 java文件中包含代码的所有内容,类,接口,成员变量,成员方法.... .class 字节码文件 .class 是由 ...
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...
可以学习如何通过Java的反射机制实例化对象、调用对象的方法、操作对象的私有成员变量、改变数组中的某项的值、改变数组大小等;可以学习Java的动态代理模式、学习Java工厂模式以及如何将工厂模式与属性文件相结合。
Java反射机制是在运行状态中的 对于任意一个类,都能够知道这个类的所有属性和方法(动态获取的信息); 对于任意一个对象,都能调用它的任意一个方法和属性(动态调用对象的方法) 这种动态获取的信息以及...
这种动态获取类的信息,以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。Java 反射机制主要提供了以下功能: l 在运行时判断任意一个对象所属的类; l 在运行时构造任意一个类的对象; l ...
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...
Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息...