isAssignableFrom和instanceof的不同

isAssignableFrom和instanceof的不同

下面是JUnit的测试代码(测试能通过):

 1         User user  =   new  User();
 2         assertTrue(user.getClass().isAssignableFrom(User. class ));
 3         assertFalse(user.getClass().isAssignableFrom(Actor. class ));
 4         assertFalse(user.getClass().isAssignableFrom(IUser. class ));
 5         assertFalse(user.getClass().isAssignableFrom(IActor. class ));
 6         
 7         assertTrue(user  instanceof  User);
 8         assertTrue(user  instanceof  Actor);
 9         assertTrue(user  instanceof  IUser);
10        assertTrue(user  instanceof  IActor);

类与类之间的层次关系是:
User extend Actor  implements  IUser

从上面可以看出isAssignableFrom和instanceof的不同之处。

你可能感兴趣的:(isAssignableFrom和instanceof的不同)