본문 바로가기
카테고리 없음

자바 List배열 remove 메서드 실행 안될때[개념의 구현체와 실현체]

by 날파리1 2022. 7. 21.

구현체와 실현체

리스트를 선언하는 것은 구현체이고  new 는 실제로 만들어주는 실현체라는 것을 개념적으로만 알고 있었다

public List<String> getNonZeroThreeJinbub(int n) {
  //List<String> nonZeroThreeJinbub = new ArrayList<>(reverseArrayValue(n));
  List<String> nonZeroThreeJinbub = reverseArrayValue(n);
  int length = nonZeroThreeJinbub.size();
  nonZeroThreeJinbub.remove(0);

그래서 위 처럼 reverseArrayValue(n) 라는 리스트 (리스트명은 내가 작업중이던 것을 역순으로 받아온 배열리스트니 신경쓰지 않아도 된다 그냥 실체화된 리스트이다!) 를 새로만든 nonZeroThreeJinbub에 넣어주고 remove 메서드를 실행시키니 

@Test
void getNonZeroThreeJinbub() {
  ThreeJinbub threeJinbub = new ThreeJinbub();

  assertEquals("2",threeJinbub.getNonZeroThreeJinbub(45).get(0))

 

java.lang.UnsupportedOperationException (지원하지 않는 연산자 예외)

라는 오류가 뜬다.

 

근데 근야 단순히 리무브라는 동작 없이  get 해오는건 또 잘된다.

 

* 결론

 

받아온 리스트레 동작(메서드)를 쓰려면 실체화 (new ) 해줘야 한다.

 

 

 

댓글