This question is about the apparent \"hidden\" or local imports of Java packages that lambda expressions seem to employ.
The following sample code compiles and runs
I think the point you're trying to illustrate can be simplified like this:
This lambda requires an import
Paths.get("path").forEach((Path filePath) -> {});
This lambda does not require an import
Paths.get("path").forEach((filePath) -> {});
Since Path.forEach(...) takes a Consumer super Path> I presume the latter case is creating a new type on-the-fly of ? super Path, and thus you don't need an import since it's a new type (like a generic type at runtime)