I can create a Guava ImmutableList
with the of
method, and will get the correct generic type based on the passed objects:
Foo foo = new Foo(); ImmutableList.of(foo);
However, the of
method with no parameters cannot infer the generic type and creates an ImmutableList<Object>
.
How can I create an empty ImmutableList
to satisfy List<Foo>
?
ImmutableList. <Foo>of() will create an empty ImmutableList with generic type Foo . Though the compiler can infer the generic type in some circumstances, like assignment to a variable, you'll need to use this format (as I did) when you're providing the value for a function argument.
We can use the List. of() to create an immutable empty list.
If you assign the created list to a variable, you don't have to do anything:
ImmutableList<Foo> list = ImmutableList.of();
In other cases where the type can't be inferred, you have to write ImmutableList.<Foo>of()
as @zigg says.
ImmutableList.<Foo>of()
will create an empty ImmutableList
with generic type Foo
. Though the compiler can infer the generic type in some circumstances, like assignment to a variable, you'll need to use this format (as I did) when you're providing the value for a function argument.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With