Close

Java Collections - Collections.checkedCollection() Examples

Java Collections Java Java API 


Class:

java.util.Collections

java.lang.Objectjava.lang.Objectjava.util.Collectionsjava.util.CollectionsLogicBig

Method:

public static <E> Collection<E> checkedCollection(Collection<E> c,
                                                  Class<E> type)

Returns a dynamically typesafe view of the specified collection.


Examples


Not using checkedCollection:

package com.logicbig.example.collections;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

public class CheckedCollectionExample {

public static void main(String... args) {
Collection<String> c = new ArrayList<>();
Collections.addAll(c, "apple", "banana");
System.out.println(c);

Collection c2 = c;
c2.add(1);
System.out.println(c2);
}
}

Output

[apple, banana]
[apple, banana, 1]




Using checkedCollection:

package com.logicbig.example.collections;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

public class CheckedCollectionExample2 {

public static void main(String... args) {
Collection<String> c = new ArrayList<>();
c = Collections.checkedCollection(c, String.class);
Collections.addAll(c, "apple", "banana");
System.out.println(c);

Collection c2 = c;
c2.add(1);//this throws exception
System.out.println(c2);
}
}

Output

Caused by: java.lang.ClassCastException: Attempt to insert class java.lang.Integer element into collection with element type class java.lang.String
at java.util.Collections$CheckedCollection.typeCheck(Collections.java:3037)
at java.util.Collections$CheckedCollection.add(Collections.java:3080)
at com.logicbig.example.collections.CheckedCollectionExample2.main(CheckedCollectionExample2.java:22)
... 6 more




See Also