On 23 March 2017 at 15:02, Lukasz Lenart <[email protected]> wrote:
> 2017-03-23 14:37 GMT+01:00 sebb <[email protected]>:
>> Not sure I follow.
>>
>> What exactly can the compiler check?
>
> You can declare a variable or a field of type UnmodifiableSet but
> there is no way to create instance of the type UnmodifiableSet - there
> is no such constructor neither factory method :)
>
You can create an instance:
UnmodifiableSet<String> us = (UnmodifiableSet<String>)
UnmodifiableSet.unmodifiableSet(new java.util.HashSet<String>());
us.clear(); // The compiler is happy with this, but it fails at runtime
AFAICT the only way the compiler can check is to create a class or
interface that does not have the update methods.
One could potentially create a ReadOnlySet interface that is
implemented by UnmodifiableSet.
Similarly for the other unmodifiable Collections.
However would it be worth it?
> Regards
> --
> Ćukasz
> + 48 606 323 122 http://www.lenart.org.pl/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]