develog

[java] instanceof vs isAssignableFrom 본문

카테고리 없음

[java] instanceof vs isAssignableFrom

냐옴 2021. 10. 7. 14:45

Test 코드

@Test
void instanceof_test() {
    Board board = new Board();
    NewsBoard newsBoard = new NewsBoard();
    
    assertThat(board instanceof Board).isTrue(); // true
    assertThat(board instanceof NewsBoard).isFalse(); // false

    assertThat(newsBoard instanceof Board).isTrue(); // true
    assertThat(newsBoard instanceof NewsBoard).isTrue(); // true
}

@Test
void isAssignableFrom_test() {
    Board board = new Board();
    NewsBoard newsBoard = new NewsBoard();
    
    assertThat(Board.class.isAssignableFrom(board.getClass())).isTrue(); // true
    assertThat(NewsBoard.class.isAssignableFrom(board.getClass())).isFalse(); // false

    assertThat(Board.class.isAssignableFrom(newsBoard.getClass())).isTrue(); // true
    assertThat(NewsBoard.class.isAssignableFrom(newsBoard.getClass())).isTrue(); // true
}

Board.java

public class Board {
    
}

NewsBoard.java

public class NewsBoard extends Board {
    
}
Comments