java - 如何映射具有接口(interface)和类的方法——从操作到委托(delegate)

标签 java

考虑委托(delegate)中的方法

Public void findThisMethod(String a,Set b,HashSet c){}

因此,从操作 am gng 映射此方法与方法 id 和参数类型..通过使用。

Object[] arguments = new Object[] {a,b,c}
    for (int i = 0 ; i < arguments.length ; i++){
      argumentTypes[i]  = arguments[i].getClass();
    }
Method invokeMethod = delegateClass.getDeclaredMethod(methodID,argumentTypes);
returnObj           = invokeMethod.invoke(delegateObj,arguments);

...问题::这不是问题,因为 Set 是一个接口(interface)!谁能告诉我如何正确映射接口(interface)???

最佳答案

如果您正在使用 getDeclaredMethod 查找方法的签名,那么您应该提供此签名的参数的确切类型,而不是子类。子类化将由编译器解决,但它对内省(introspection)没有帮助。

明确提供参数的类型,不要从对象中获取它们。你应该有类似的东西

delegateClass.getDeclaredMethod(methodID, new Class[] { String.class, Set.class, HashSet.class } );

关于java - 如何映射具有接口(interface)和类的方法——从操作到委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9938320/

相关文章:

java - 尝试用Java模拟其他类中的线程行为

java - Pattern::asPredicate 线程安全吗

java - 如何在 Spring Integration 中动态添加队列以进行交换

java - 如何在 Tomcat 停止时停止执行程序线程?

Java 套接字丢失数据 : BufferedReader

java - Java 中的循环倒数计时器

java - 如何使用 C# 终止正在运行的 jar 文件

java - 如何计算 sqlite 数据库中的特定项目?

java - 短与整数内存分配

java - 我使用 javascript 创建了一个 html 文件来在 firebase 中存储图像,但是如果我运行 html 并单击选择文件,它会在控制台中显示错误