One problem with using Guava's Optional
type as arguments of methods is that you can't simply write
// method declaration
public void foo(Optional<String> arg);
// compiler error
foo(Optional.absent());
due to type inference failing but instead have to add the type explicitly:
// real method call
foo(Optional.<String> absent());
How can I avoid it?