`

java 反射调用成员方法

阅读更多

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);
    }

 

 

 

0
0
分享到:
评论

相关推荐

    Java反射机制,通过对象访问调用类的私有成员或方法

    Java反射机制,万物皆对象,class也是一个类的对象,通过类类型,反射获得类的成员属性,构造方法,成员方法,并调用类中的方法,也可以调用私有方法。

    java反射知识点

    3.获取成员方法 4.获取成员变量 5.反射数组 6.通过反射配置文件内容 7.通过反射越过泛型检查 8.其他一些文本笔记 读者需要补充的知识点我来说一下,补充: 1.反射数组应用 2.反射main方法 3.反射代理(设计模式) 4....

    java反射机制核心代码

    java反射机制核心代码,小弟一直弄不明白,怎么通过反射来调用私有成员方法,看了这个后,你可以随心调用private方法,和属性,记得添加setAccessable(true),哦,要不还是不行,如:method.setAccessable(true);

    java反射机制的ppt

    什么是反射 Class类的介绍 如何用Class类获得类的构造方法、成员属性、成员方法 利用java反射机制动态创建对象 利用java反射机制动态调用成员方法和改变成员变量

    java中的反射(详解)

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java...

    JAVA反射机制详解

    调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。Java 反射机制主要提供 了以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的...

    Java高级程序设计实战教程第三章-Java反射机制.pptx

    都能够调用它的任意一个方法,常见的应用如下 逆向代码 ,例如反编译 与注解相结合的框架 例如Retrofit 单纯的反射机制应用框架 例如EventBus 2.x 动态生成类框架 例如Gson Java高级程序设计实战教程第三章-Java反射...

    Java反射机制的工作原理详解.docx

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java...

    java反射使用

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java...

    java反射机制

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...

    Java反射机制

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...

    编写Student类,类中包含学生姓名,学号等私有数据成员。使用JAVA反射机制修改一个学生对象的私有数据成员

    编写Student类,类中包含学生姓名,学号等私有数据成员。 使用JAVA反射机制修改一个学生对象的私有数据成员(不允许调用setters)

    java反射技术讲解

    Java反射机制主要提供了以下功能: l 在运行时判断任意一个对象所属的类; l 在运行时构造任意一个类的对象; l 在运行时判断任意一个类所具有的成员变量和方法; l 在运行时调用任意一个对象的方法; l 生成...

    java 反射

    这种动态获取信息以及动态调用对象方法的功能成为java反射机制。 2. java 文件和 .class 文件的关系 java 文件 java文件中包含代码的所有内容,类,接口,成员变量,成员方法.... .class 字节码文件 .class 是由 ...

    候捷谈Java反射机制

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...

    Java反射和动态代理实例

    可以学习如何通过Java的反射机制实例化对象、调用对象的方法、操作对象的私有成员变量、改变数组中的某项的值、改变数组大小等;可以学习Java的动态代理模式、学习Java工厂模式以及如何将工厂模式与属性文件相结合。

    Java – 什么是java反射?

     Java反射机制是在运行状态中的  对于任意一个类,都能够知道这个类的所有属性和方法(动态获取的信息);  对于任意一个对象,都能调用它的任意一个方法和属性(动态调用对象的方法)  这种动态获取的信息以及...

    Java语言的反射机制.rar

    这种动态获取类的信息,以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。Java 反射机制主要提供了以下功能: l 在运行时判断任意一个对象所属的类; l 在运行时构造任意一个类的对象; l ...

    Java实验1代码.doc

    本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...

    Java反射机制讲义.docx

    Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息...

Global site tag (gtag.js) - Google Analytics