我有以下函数,它返回与传递的类型相同的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
作为一等函数。
答案 0 :(得分:3)
您正在将方法与类混淆,后者可能被实现为 lambda 。
如果在代码的上下文中T
不是一种类型,则不能键入任何内容。
您可以这样做:
class MyClass<T> implements Function<T, List<T>> {
public List<T> accept(T t) {
// some impl
}
}