如何使用泛型通过参数传递函数

时间:2019-01-17 20:32:50

标签: java collections functional-interface

给出以下代码:

static <U,V> List<V> map(Iterable<U> l, Function<U,V> f) {
    return null;
}

我需要在第一个参数中传递一个arraylist,在第二个参数中传递一个散列函数,该函数采用一个字符串并输出一个int类型。

我正在尝试以下操作,但收到以下错误消息。

map(names,<String,Integer> hashCode());

map(names,hash());
  

错误消息:不适用于int参数

需要传递哈希函数,以便我可以在方法内部使用此函数。

1 个答案:

答案 0 :(得分:0)

这里:

[Next PeriodStart]=A3

不是功能!它只是一个方法调用。您宁愿需要一个lambda,例如:

hashCode()

或者,因为您可能正在使用当前对象的哈希码:

x -> x.hashCode()

但这实际上取决于您打算在其上调用hashCode方法的对象。当然,您打算“使用”的接口也有差异,无论是Function还是Supplier(例如,第二种方法参考示例都是供应商)。