On 23 March 2017 at 15:02, Lukasz Lenart <lukaszlen...@apache.org> wrote:
> 2017-03-23 14:37 GMT+01:00 sebb <seb...@gmail.com>:
>> 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: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to