public static <T> List<T> unmodifiableList(List<T> l)
public static <T> List<T> unmodifiableList(List<? extends T> l)
  public static <T> List<T> unmodifiableList(List<T> l)  {    if (l instanceof RandomAccess)      return new UnmodifiableRandomAccessList<T>(l);    return new UnmodifiableList<T>(l);  }