通用功能作为功能接口?

时间:2018-07-17 02:52:09

标签: java generics functional-interface

我有以下函数,它返回与传递的类型相同的List

<T> List<T> foo(T bar)
{
    ...
}

除了Java Functional Interface形式之外,我希望具有相同的功能。我尝试了以下方法:

final <T> Function<T, List<T>> foo;

但是它不喜欢<T>。如果我像这样省略<T>

final Function<T, List<T>> foo;

它声称找不到类型T,与我将原始函数定义为一样的错误完全相同:

List<T> foo(T bar) // cannot find type 'T'
{
    ...
}

我想将函数foo作为一等函数。

1 个答案:

答案 0 :(得分:3)

您正在将方法混淆,后者可能被实现为 lambda

如果在代码的上下文中T不是一种类型,则不能键入任何内容。

您可以这样做:

class MyClass<T> implements Function<T, List<T>> {
    public List<T> accept(T t) {
         // some impl
    }
}