我有一个类,用于遍历目录树,并在每个文件/目录上执行操作. 它看起来像这样:
class DirWalker {
public static void walkDirs(Path startingPath, Consumer<Path> vAction) {...}
}
在另一堂课上,我有以下内容:
public static Consumer<Path> doVisit = p -> {...}
我try 在我的Java代码中使用它,如下所示:
DirWalker.walkDirs(/* a path */, MyClass::doVisit);
然而,我在这里得到了一个错误,说‘MyClass没有定义适用于这里的doViite(路径)’.我可以将doVisit
个成员更改为一个方法,它可以工作.
如果我在walkDirs
调用中使用一个lambda内联,它会很好地工作. 但是创建一个Consumer
的实例并将其传递给walkDirs
方法失败. 为什么会出现这种情况?