This java example shows how to make a read-only collection using unmodifiableList, unmodifiableSet and unmodifiableMap methods of Collections class.
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class MakingCollectionReadOnly { public static void main(String[] argv) throws Exception { List numberList = new ArrayList(); numberList.add(1); numberList.add(2); numberList.add(3); /** * Returns an unmodifiable view of the specified list. This method * allows modules to provide users with "read-only" access to internal * lists. Query operations on the returned list "read through" to the * specified list, and attempts to modify the returned list, whether * direct or via its iterator, result in an * UnsupportedOperationException. **/ numberList = Collections.unmodifiableList(numberList); try { // Attempting to modify the read-only list, throws // UnsupportedOperationException numberList.set(0, "new value"); } catch (UnsupportedOperationException e) { System.out.println("Can't modify read-only list:"+e); } Set set = new HashSet(); set = Collections.unmodifiableSet(set); Map map = new HashMap(); map = Collections.unmodifiableMap(map); } }
The output is:
Can't modify read-only list:java.lang.UnsupportedOperationException
No comments:
Post a Comment