1. Condtions/Results
1) a instanceof B, B 满足如下条件,返回True
1. B 是 a 的 类
2. B 是 a 的 超类
3. B 是 a 的 接口
4. B 是 a 的 超类 接口
2) a.isAssignableFrom( B.class ), B 满足如下条件,返回True
1. B 是 a 的类
2. Junit Test Cases
一个简单 的Junit test
@Test
public void testIsAssignableFrom(){
User user = new User();
assertTrue(user.getClass().isAssignableFrom(User.class));
assertFalse(user.getClass().isAssignableFrom(Actor.class));
assertFalse(user.getClass().isAssignableFrom(IUser.class));
assertFalse(user.getClass().isAssignableFrom(IActor.class));
assertTrue(user instanceof User);
assertTrue(user instanceof Actor);
assertTrue(user instanceof IUser);
assertTrue(user instanceof IActor);
}
private class User extends Actor implements IUser{}
private class Actor implements IActor{}
private interface IUser{}
private interface IActor{}
本文探讨了Java中对象类型检查的方法,包括使用instanceof关键字和isAssignableFrom方法的区别,并通过JUnit测试案例进行了验证。
813

被折叠的 条评论
为什么被折叠?



