gpt4 book ai didi

java - 我可以获取Java中方法参数的列表吗

转载 作者:行者123 更新时间:2023-12-02 02:18:41 25 4
gpt4 key购买 nike

<小时/>

我正在编写大量这样的样板文件。我觉得必须有更好的方法。我正在寻找的是从方法调用中自动获取 new Object[] 。像 Reflection.getCurrentMethodCall().getArgumentsAsList().toArray() 之类的东西,但我不确定应该寻找哪些关键字

谢谢!

[ ... 50 identical methods ... ]
@Override
public int get_ProxyFactoryMapping(PointerByReference factoryMapping) {
Function f = Function.getFunction(vTable[48], Function.ALT_CONVENTION);
return f.invokeInt(new Object[]{getInterface(), factoryMapping});
}

@Override
public int GetPropertyProgrammaticName(int property, PointerByReference name) {
Function f = Function.getFunction(vTable[49], Function.ALT_CONVENTION);
return f.invokeInt(new Object[]{getInterface(), property, name});
}

@Override
public int GetPatternProgrammaticName(int pattern, PointerByReference name) {
Function f = Function.getFunction(vTable[50], Function.ALT_CONVENTION);
return f.invokeInt(new Object[]{getInterface(), pattern, name});
}
@Override
public int GetPatternProgrammaticName(0..n arguments) {
Function f = Function.getFunction(vTable[running index], Function.ALT_CONVENTION);
return f.invokeInt(new Object[]{getInterface(), the same arguments as this object was called with});
}
[ ... 150 identical methods ... ]

最佳答案

你试过吗java.lang.reflect.Proxyjava.lang.reflect.InvocationHandler

基本上,您实现了 InvocationHandler 接口(interface),该接口(interface)有一个方法 invoke 可以为您提供所需的功能:

Object invoke(Object proxy, // the proxy object
Method method, // the method called
Object[] args) // the argument list
throws Throwable

然后将处理程序的实例传递给 Proxy 类以获取代理对象(从 Java 文档复制的代码):

Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),
new Class[] { Foo.class },
handler);

其中 Foo 是一个接口(interface)。

关于java - 我可以获取Java中方法参数的列表吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48875777/

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