下面是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);

2

3

4

5

6

7

8

9

10

類與類之間的層次關系是:

從上面可以看出isAssignableFrom和instanceof的不同之處。