New Collections interface - Sized
Stephen Colebourne
scolebourne at joda.org
Fri Apr 23 22:14:51 UTC 2021
On Fri, 23 Apr 2021 at 23:07, Brian Goetz <brian.goetz at oracle.com> wrote:
> >> Is there a compelling example of where this would be used by clients?
> > Here are some examples:
> > https://stackoverflow.com/questions/10988634/java-global-isempty-method
> Without passing judgment on the sort of dynamically typed programs that
> need a method like this
The other example is better as it benefits from declaring an API that
only accepts instances of `Sized` and does not need to get the
contents.
> But again, if you are treating these things as containers, then a Sized
> doesn't get you very far, because if you conclude the thing isn't empty,
> you're going to want to get stuff out, and Sized has no methods for
> that. So presumably there's some companion to Sized for accessing
> elements by index:
>
> interface HasStuff<T> extends Sized {
> T get(int index);
> }
I don't think there has to be. the more useful interface would be this
one, but to date there has been strong resistance in unifying the
Collection and Map interfaces:
interface Stuff<T> extends Sized {
int size();
int isEmpty();
int isNotEmpty();
Iterator<t> iterator();
}
Stephen
More information about the core-libs-dev
mailing list