새벽까지
equals 오버라이드 NullPointException 문제
개발일지-TIL/JAVA 2023. 7. 26. 22:53

먼저 equals를 오버라이드 할때는 pk값만 오버라이드 하게 되는데, 먼저 가정을 하나 들겠습니다. num이라는 pk가 있다고 생각하면 오버라이드는 이런 형태를 갖고 있습니다. 일반적인 Object equals 오버라이드 형태 @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; return Objects.equals(num, other.num); } 여기서 코드 한 줄을 추가합니다. Q1 - NullPointException @O..

자바 Object[] 클래스 형변환 ClassCastException 오류
개발일지-TIL/JAVA 2023. 7. 26. 22:18

문제의 코드 static Listbooks = new ArrayList(); @Override public Book[] getList() { return (Book[])books.toArray(); } 이러한 코드를 Book에서 불러왔는데 ClassCastException 오류가 생겼다. 컴파일시에는 아무런 문제가 없다. toArray() 메소드의 반환은 Object[]이다. Object[] -> Book[] Book[]조상인 Object[]를 형변환했는데 왜 이런 문제가생겼을까? Example 예를들어 이러한 코드가있다. Object[] objectArray = new Object[3]; objectArray[0] = new Person("Alice", "1234", 25); objectArray[1]..