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{}