Java is Pass-By-Value. I list some alternatives.
Category: Java
About Java – the technology, not the island.
== versus equals()
Most answers on the internet are incomplete and some are even plain wrong. I’ll try to list all differences.
Why is String immutable?
This has been answered a million times (I get a million results on google). But my answer is the most bestest!
Continue reading “Why is String immutable?”Misnomer: String.length()
The method String.length()
gives the length of the String, right? Or does it?
Functional Java Tuples
Just a prototype so far:
https://github.com/claudemartin/FunctionalJavaTuples
The generic types of the arguments are always A, B, C, etc. The result is of generic type R.
It’s my goal to have three forms:
- Method/Lambda Form: Takes n arguments
- Curried Form: Methods are chained
A -> B -> C -> ... -> R
- Uncurried Form: Takes a tuple
(A,B,C,...) -> R
The idea is to add all the basic functions of Haskell to a project that then uses javatuples.org to have a way of using tuples for functional programming in Java 8.
- curry / uncurry
- zip / unzip
- composition (“.”-operator in Haskell)
- pipes (“|>” in F#)
- partial application
fn.arity()
returns the arity of the function.- Convert Suppliers and Consumers to Functions.
There’s still a lot to do…
List of TODOs:
- Implementations of
Fn
forQuad ... Decade
- Unit-Tests (instead of FunctionalDemo.java)
- Types
Curried
andUncurried
for such forms of the methods
Contact me on github if you are interested in this project.
Java 8 Currying
Currying is great to spice up your code! But this is not about cooking.
Continue reading “Java 8 Currying”Generic Array Creation
Arrays of generic types are often hard to create and handle. I’ll show you how to create an array of a class with a generic parameter.
Is a Constructor a Method?
Why a constructor is not a method.
No, it’s not. In reflection both extend Executable
, but Constructor
does not extend Method
. It is a common misconception that constructors are methods and often asked about at job interviews.
Why a Consumer is not a Function.
java.util.function.Consumer
does not extend java.util.function.Function
. But what if you want a set of both types? Why isn’t there a ConsumerFunction?
A ConsumerFunction is not defined in java.util.function
. You can easily do it yourself. But you will see that it’s not that simple. void
is a keyword in Java. There is a class Void
and (by reflection) you can even get an instance of Void
. But you have to use a return statement to get a Function
.
Is Java object-oriented?
This is often asked at interviews. I’ll explain when to answer “yes” and when to answer “no”.
Continue reading “Is Java object-oriented?”