I was wondering... what is considered the best practice to instantiate blank val
ID: 639406 • Letter: I
Question
I was wondering... what is considered the best practice to instantiate blank value objects? (in Java)
E.g. Assume we have some value object class Foo, that could be blank.
Would creating methods like these be a clean solution? (And perhaps adding in a "Blankable" interface or something).
interface Blankable {
public Foo blankInstance();
public boolean isBlank();
}
class Foo implements Blankable {
public Foo blankInstance();
public boolean isBlank();
}
Foo foo = something();
if (foo.isBlank()) // Tell the user
Or would something more simple like this be better?
class Foo {
public static Foo BLANK = /* Some constructor */;
}
Foo foo = something();
if (foo == Foo.BLANK) // Tell the user
I am leaning toward the first example, but I am still not sure if it is a widely accepted technique.
I feel a bit resistant to (but still open to) using the Guava Optional< T> class because it seems like a work-around solution in this circumstance.
Explanation / Answer
A solution such as Option<T> is not a so bad idea. In fact, it has been successfully introduced in Haskell as a Maybe (but I don't know if this is the first time this solution has been used). Maybe monads are common in Haskell programs. Since, other languages have adopted the same system. For instance, Scala has an Option type.
If you don't want to become dependent of Guava, you could use Java 8, which introduces the Optional class.
However, Option/Maybe/
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.