Static fields and specialization

Brian Goetz brian.goetz at
Mon Jan 12 16:11:40 UTC 2015

> You probably misunderstood me (again) :(
> Richard suggested that you can keep speed of Optional.empty() by
> creating separate layers for <ref T>, <int T>, etc...

Remember, for value types (hopefully Optional will be one), 
instantiation is essentially free, and in most cases where this idiom is 
used, it is the allocation that we're trying to optimize away.  So the 
idiom of "cache one and return the same instance", in these cases, can 
be retired.

I realize this still doesn't help us for reference types, like 
Collections.emptyList(); this point got made a while ago (so it didn't 
occur to me we were still talking about it.)

More information about the valhalla-dev mailing list