【发布时间】:2015-06-09 10:49:29
【问题描述】:
假设我们有一个IntFunction 类型的变量,它返回一个整数数组:
IntFunction<int[]> i;
使用 Java 8 泛型,可以使用如下构造函数引用来初始化此变量:
i = int[]::new
Java 编译器如何将其转换为字节码?
我知道对于其他类型,比如String::new,它可以使用invokedynamic指令指向String构造函数java/lang/String.<init>(...),这只是一个具有特殊含义的方法。
这如何与数组一起工作,看到有构造数组的特殊说明吗?
【问题讨论】:
-
在 Java 中,这些被称为引用,而不是指针。一般来说,引用提供了指针的几乎所有操作,除了你不能给引用添加任意偏移量,或者对它们执行其他类型的数学运算。
标签: java arrays java-8 method-reference