Functional programming in Java. I've seen it. People writing FP in Java not because it's the right call — because they just discovered lambdas and got excited. Java is not Haskell. It's not Scala. It was not designed for this. And using constructors for dependency injection on top of it is the cherry on the cake. This is what happens when you learn a paradigm without understanding why it exists and where it belongs. The right tool for the right job is not a suggestion. It's the whole point.
What would you consider the differentiator between „exited“ and „appropriate“ use of FP in Java?
Are you saying one should not use constructors for DI?
I have to confess: I never wondered why Java (technically) introduced Functional Programming – I simply discovered it and got excited!
Why do you claim that poorly designed lambda primitives and all the monad-like APIs in Java 8 are equivalent to FP?
So you start working on a feature request by selecting a programming language? If not, I don't understand what you are talking about.