java - Collections.unmodifiableList wraps already unmodifiable list? -
in collections.unmodifiablelist implementation see wraps given list unmodifiablelist if given list unmodifiablelist... if i'm calling method on , on - huge stack trace, this:
@ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998) @ java.util.collections$unmodifiablecollection.size(collections.java:998)
i thought check if list unmodifiabellist , return same list, google's collections does, not public class..
any suggeestions how solve elegantly?
thanks
a workaround see, if can modify places lists wrapped, use own unmodifiable list wrapper, , check if list not instance of list wrapper before wrapping it.
another workaround use
private static final class<?> unmodifiable_list_class = collections.unmodifiablelist(new arraylist<object>(0)).getclass(); ... if (!thelist.getclass().equals(unmodifiable_list_class)) { return collections.unmodifiablelist(thelist); }
Comments
Post a Comment