Hi Java guys,
I want to know how you guys use java. My previous job still uses OOP (except simple lambda and stream). Now, I joined Oracle. I found they use functional programing almost everywhere. How do you guys do your work?
Note, when I say functional programming, I am not just talking about simple lambda and stream functions. I especially reference if you use functions in the return type and method parameters.
During my previous job, I tried to avoid using functions in returns and method parameters. Since there are saying that function is not performing that well. I still think that is probably true. Functions are compiled to anonymous classes in behind.
For example,
Functional:
public Supplier<String> someMethod() { return () -> "Hello!" } or callMethod(() -> "Hello!")
More OOP style.
private Supplier<String> hello = () -> "Hello!"; public Supplier<String> someMethod() { return hello; or callMethod(hello);
Let me know your ideas.
Top comments (2)
If by functional programming you mean the new lib introduced in Java 8 - yes I use it all the time. But you have to still use OOP, are you saying the two are mutally exclusive?
I use lambdas, method references, Consumer, Supplier, Function, Optional types, Streams (collect, reduce, map, filter, etc) and I'm not aware of any performance issues.
I am not saying they are mutually exclusive. Let's use an example.
Functional:
More OOP style.