Is Interface API always constant?
<p>Such as <code>java.util.Set&lt;E&gt;</code>, is it guaranteed to be consistent? "Consistent" means that the author will never add or delete or modify the current interface methods. So that my classes implemented it can always work.</p>

<p>In fact, I am thinking about the risks when I use "Composition" instead of "Inheritance". (<em>Effective Java</em> Item 16) Once <code>Set</code> API changes, the code will broken.</p>