JDK 5.0 的角落

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航