MethodEndpoint.java 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package cn.nosum.support.endpoint;
  2. import lombok.Data;
  3. import lombok.SneakyThrows;
  4. import org.apache.commons.logging.Log;
  5. import org.apache.commons.logging.LogFactory;
  6. import java.lang.reflect.Method;
  7. /**
  8. * Dynamic method section wrapper class.
  9. *
  10. * @author Young
  11. */
  12. @Data
  13. public class MethodEndpoint {
  14. private final Log logger = LogFactory.getLog(getClass());
  15. private Object bean;
  16. private String beanName;
  17. private Method method;
  18. public boolean isMatcher(Object... args) {
  19. if (null == args || args.length == 0) {
  20. return method.getParameterTypes().length == 0;
  21. }
  22. Class<?>[] parameterTypes = method.getParameterTypes();
  23. if (args.length == parameterTypes.length) {
  24. for (int i = 0; i < parameterTypes.length; i++) {
  25. if (!(parameterTypes[i] == args[i].getClass())) {
  26. return false;
  27. }
  28. }
  29. return true;
  30. }
  31. return false;
  32. }
  33. @SneakyThrows
  34. public Object invoke(Object... args) {
  35. return method.invoke(bean, args);
  36. }
  37. }