From: Keith Bennett Date: 2008-05-17T23:30:02+09:00 Subject: Re: Not quite getting it. An interesting example of an intentional violation of method semantics in the Java standard library is the unModifiableXxx() methods in java.util.Collections. They wrap a collection and override the mutating methods to throw an exception when they are called. So someone relying on add() to add an object because that's what's specified in the interface Javadoc would be quite surprised when an implementation of that interface refused to honor the contract and threw an exception instead. - Keith