JDK 5.0 的角落

类别:Java 点击:0 评论:0 推荐:

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...)

本文地址:http://com.8s8s.com/it/it13019.htm