メソッド反射

1646 ワード

private Object reflectClassFunByName(String className,
                                                 String methodName,
                                                 Class[] parameterClasses,
                                                 Object[] parameterObjects){
                Object instance = null;
                Class instanceClass = null;
      
                try
                {
                    instanceClass = Class.forName(className);
                    instance = instanceClass.newInstance();
                }
                catch(Exception ex)
                {
                    return null;
                }
      
                return reflectClassFunByInstance(instance, methodName, parameterClasses, parameterObjects);
            }
      
           private Object reflectClassFunByInstance(Object instance,
                                                     String methodName,
                                                     Class[] parameterClasses,
                                                     Object[] parameterObjects)
            {
                if(instance == null)
                {
                    return null;
                }
      
                Method method = null;
                try
               {
                    method = instance.getClass().getMethod(methodName,
                        parameterClasses);
                    return method.invoke(instance, parameterObjects);
                }
                catch(Exception ex)
                {
                }
      
                return null;
            }