gpt4 book ai didi

java - 识别 java 中 gerDeclaredMethod 所需参数的类类型

转载 作者:行者123 更新时间:2023-12-02 05:07:07 31 4
gpt4 key购买 nike

我正在使用 Java Reflection 来调用具有这 4 个参数类型的方法 xyz:

Set<LineItems> 
String
Document
Profiler

使用 getDeclaredMethod 时,我需要提供方法参数类型。如果String的参数类型是String.class,Set<LineItems>应该做什么?应该是Set.class吗? (请记住 Set 是一个接口(interface))

函数 xyz 是接口(interface) abc 中的默认函数。该接口(interface)正在多个其他类中实现,因此方法应仅在此处反射(reflect)。这是我的代码:

Class c = abc.getClass();

Class args[] = new Class[4];
args[0] = Set.class;
args[1] = String.class;
args[2] = Document.class;
args[3] = Profiler.class;

Method m = c.getMethod("xyz",args) ;

我收到 NoSuchMethodFoundException我知道这可能存在多个缺陷。有什么帮助吗?

最佳答案

what should be done for Set<LineItems>?

你那里有什么Set.class应该做。请记住,Java 泛型带有 type erasure因此,在运行时,该方法的签名将显示 Set.class ,还有!

是的,当您打算调用的方法的签名是Set时,那么使用Set(接口(interface))类正是您必须做的。例如,如果方法签名为 HashSet然后Set.class不会不会做!

关于java - 识别 java 中 gerDeclaredMethod 所需参数的类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56344081/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com