1,dynamic cast 
类似C++的dynamic_cast<T*>操作符,C#的as操作符,Java 5.0提供了安全的dynamic cast功能,不同的是它以类库的形式提供的: 
Class.cast public T cast(Object obj) 
- Casts an object to the class or interface represented by this Class object.   
- 
- Parameters: 
 obj - the object to be cast 
- Returns: 
 - the object after casting, or null if obj is null 
 - Throws: 
 ClassCastException - if the object is not null and is not assignable to the type T. 
- Since: 
 - 1.5 
     
2,返回值协变 
interface SomeInterface{     Object get(); }
  class CovariantImpl implements SomeInterface{     public String get(){         return "covariant";     } }
  public class TestUntitled2 extends TestCase {     public void testCovariant() {         SomeInterface obj = new CovariantImpl();         Assert.assertEquals("covariant", obj.get());     } } 
3,类型安全的代理 
类似只读代理Collections.unmodifiableXXX, 同步代理Collections.synchronizedXXX, Java 5.0提供了类型安全的代理:Collections.checkedXXX 
4,Arrays.deepEquals() 
5,毫无必要的static import 
并且对同一个包内的static method不管用 
package si;
  class CovariantImpl     public static void faint(){      } }
  package si;
  class SomeClass{     public void test(){         faint(); // compiler faints     } } 
  
(to be continue...)  
 
  |