Java MethodHandle; 在多个位置使用参数

桂13

在Java中,我能够将多个方法句柄及其每个参数组合在一起,如下所示:

foo( a, bar( 2, b ) )

..通过使用MethodHandles.collectArguments()

我得到的方法句柄可以这样调用:

myHandle.invokeExact( 5, 6 ); // invokes foo(5, bar(2, 6))

但是现在,我想获得一个方法句柄,将其参数分派到调用树中,如下所示:

MethodHandle myHandle = ...; // foo( *x*, bar( 2, *x* ) )
myHandle.invokeExact( 3 ); // replaces x by 3 in both locations
// this call represents 'foo(3, bar(2, 3));'

我不能全神贯注于如何做到这一点。你能帮助我吗?

桂13

像往常一样,对于Java方法句柄,兴趣不大,所以我将为您提供答案:

MethodHandles :: permuteArguments与MethodType :: dropPatameterTypes()调用结合使用。

就我而言,这仅仅是一个问题:

MethodHandle handle = [...]; // method handle representing f(x1, x2) = x1 + (x2 - 2)
MethodHandle h_permute = MethodHandles.permuteArguments(
     handle,
     handle.type().dropParameterTypes(1, 2), // new handle type with 1 less param
     0, 
     0);
// h_permute now represents f(x) = x + (x - 2)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java MethodHandle; 在多个位置使用参数

来自分类Dev

MethodHandle InvokeExact参数

来自分类Dev

MethodHandle InvokeExact参数

来自分类Dev

使用java.lang.invoke.MethodHandle调用私有方法

来自分类Dev

java / lang / NoClassDefFoundError:java / lang / invoke / MethodHandle eclipse juno

来自分类Dev

Java代码要在常量池中编译为MethodHandle

来自分类Dev

如何调用可变参数一个MethodHandle

来自分类Dev

框架/库可以使用MethodHandle(而不是传统的反射)吗?

来自分类Dev

框架/库可以使用MethodHandle(而不是传统的反射)吗?

来自分类Dev

使用docopt的多个位置和可选参数

来自分类Dev

如何使用MethodHandles.Lookup查找数组构造函数MethodHandle?

来自分类Dev

当MethodHandle更快时,为什么要使用反射来访问类成员?

来自分类Dev

从 lambda 对象获取 MethodHandle

来自分类Dev

在iOS中的多个位置使用响应

来自分类Dev

使用“MKMapView”显示多个位置

来自分类Dev

对多个类使用通用/参数化Java

来自分类Dev

在多个位置编码?

来自分类Dev

Android中有等效的MethodHandle吗?

来自分类Dev

要求使用argparse的0或2个位置参数?

来自分类Dev

如何将文件复制到另一个位置以供以后使用(java)

来自分类Dev

HTML表单在多个位置使用值

来自分类Dev

同时在多个位置上使用从ResourceDictionary加载的XAML画布

来自分类Dev

在Word 2013中的多个位置上使用相同的标签

来自分类Dev

如何使用ClamAV同时扫描多个位置

来自分类Dev

如何使用谷歌地图api查找多个位置

来自分类Dev

NuGet Restore的多个位置

来自分类Dev

nginx多个位置块

来自分类Dev

Tweepy 过滤多个位置

来自分类Dev

在Java中只获取CSV的前两个位置

Related 相关文章

热门标签

归档