a instanceof B, B 满足如下条件,返回True
1. B 是 a 的 类
2. B 是 a 的 超类
3. B 是 a 的 接口
4. B 是 a 的 超类 接口
a.isAssignableFrom( B.class ), B 满足如下条件,返回True
1. B 是 a 的类
一个简单 的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{}