invoke

原创 2018年04月17日 13:22:27

invoke是反射中调用类的方法的实现:如下所示

getValueMethod.invoke(obj)实际上是:getValueMethod.getValue()

/**
     * 
     * <p>
     * Description: 转换
     * </p>
     * 
     * @param em em
     * @param param param
     * @param isToName 是否是将value转换为name
     * @return 转换后的值
     */
    private static Object change(Enum em, Object param, boolean isToName) {
        if (param == null) {
            return null;
        }
        Class clazz = em.getDeclaringClass();
        try {
            Method getNameMethod = clazz.getMethod("getName");
            Method getValueMethod = clazz.getMethod("getValue");
            Object[] constants = clazz.getEnumConstants();
            Object result = null;
            for (Object obj : constants) {
                if (isToName) {
                    int value = (Integer) getValueMethod.invoke(obj);
                    if (value == (Integer) param) {
                        result = getNameMethod.invoke(obj);
                        break;
                    }
                } else {
                    String name = (String) getNameMethod.invoke(obj);
                    if (name.equals(param)) {
                        result = getValueMethod.invoke(obj);
                        break;
                    }
                }
            }
            return result;
        } catch (Exception e) {
            logger.error(e.toString(), e);
        }
        return null;
    }


汇编: 以实例分析 INVOKE 和 call区别

例子: 我先把框架程序放在下面,然后我们再向里面加东西。 .386 .model flat, stdcall .data .code start: end start 应用程序的执...
  • ypist
  • ypist
  • 2012-10-30 13:10:22
  • 6647

PHP魔术方法之__invoke()

更多内容请访问PHP图库 当尝试以调用函数的方式调用一个对象时,该方法会被自动调用 ...
  • qq_31589453
  • qq_31589453
  • 2016-10-25 21:12:40
  • 5047

委托的invoke、beginInvoke和控件的invoke、beginInvoke的区别

原文地址:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html  在Invoke或者BeginInvoke的使用中无...
  • ydm19891101
  • ydm19891101
  • 2015-11-27 14:01:32
  • 3903

unity中Invoke()使用

Invoke(“方法名”,间隔时间)//每隔多少时间执行一次某方法 InvokeRepeating("printMessage",2f,3f);//2s后调用一次每隔3三调用一次 所以说写在v...
  • lhj1101049257
  • lhj1101049257
  • 2014-03-10 22:51:57
  • 1965

反射invoke()方法

java反射invoke()方法   invoke()方法:     主要是为了类反射,可以在不知道具体类的情况下,根据配置字符串去调用一个类的方法。最简单的方法是可以把方法参数化。 ...
  • DianaCody
  • DianaCody
  • 2014-08-28 18:10:20
  • 3332

C#中Invoke的用法()

转自 :http://www.cnblogs.com/lsgsanxiao/p/5523282.htmlinvoke和begininvoke 区别一直对invoke和begininvoke的使用和概念...
  • u012761229
  • u012761229
  • 2017-01-13 11:52:07
  • 1747

P/Invoke平台调用技术

C#里调用非托管的Dll     今天花了一些精力来调查了一下C#里调用非托管的Dll,C#里调用非托管的Dll要使用P/Invoke平台调用技术, 这里先简单介绍一下P/Invoke平台调用技...
  • u013095889
  • u013095889
  • 2016-10-13 13:01:59
  • 650

一个例子弄懂invoke方法

 import java.lang.reflect.Method;     public class InvokeTester {      public int add(int param1, in...
  • kevinwu629
  • kevinwu629
  • 2010-08-10 14:23:00
  • 3348

c#中Invoke方法

invoke方法的初衷是为了解决在某个非某个控件创建的线程中刷新该控件可能会引发异常的问题。说的可能比较拗口,举个例子:主线程中存在一个文本控件,在一个子线程中要改变该文本的值,此时会有可能引发异常。...
  • yangdayededaye
  • yangdayededaye
  • 2015-10-15 09:21:00
  • 2771

Invoke() 方法是 Unity3D 的一种委托机制

Invoke() 方法是 Unity3D 的一种委托机制 如: Invoke("SendMsg", 5);   它的意思是:5 秒之后调用 SendMsg() 方法; 使用 Invoke() ...
  • ycguhang
  • ycguhang
  • 2014-01-27 09:11:37
  • 5074
收藏助手
不良信息举报
您举报文章:invoke
举报原因:
原因补充:

(最多只允许输入30个字)