에러 메세지
Exception in thread "DisconnectableInputStream source reader" org.gradle.api.UncheckedIOException: java.io.IOException: Pipe broken
이 에러는 Gradle이 사용 중인 InputStream이 끊어졌기 때문에 발생합니다. 이런 경우에는 보통 Gradle을 재시작하면 문제가 해결됩니다.
일시적으로 장애가 발생하여 Gradle과 연결된 InputStream이 끊어졌을 가능성이 있습니다. 그래서 위와 같은 에러 메시지가 나타나는 것입니다. Gradle이나 빌드 환경을 재시작하면 대부분의 경우 문제가 해결됩니다. 또한 Gradle 버전을 업그레이드하거나, Gradle과 연관된 환경 설정을 변경하면 이 문제를 해결할 수도 있습니다.
List와 ArrayList 차이
List customerAccountRepository = new ArrayList<>();
List<Account> customerAccountRepository = new ArrayList<>();
ArrayList<Account> customerAccountRepository = new ArrayList<>();
첫 번째 코드는 List 인터페이스의 객체를 생성하려고 하지만 제네릭 타입을 지정하지 않았습니다.
이 경우 컴파일러는 경고를 발생시키고 List에 Object 타입의 요소만 추가할 수 있게 됩니다.
두 번째 코드는 List 인터페이스의 객체를 생성하고 제네릭 타입으로 Account 클래스를 지정했습니다.
이 경우 List에 Account 타입 또는 그 하위 클래스의 요소만 추가할 수 있습니다.
ArrayList클래스를 구현체로 사용하여 List 인터페이스의 메서드들을 사용할 수 있습니다.
세 번째 코드는 ArrayList 클래스의 객체를 생성하고 제네릭 타입으로 Account 클래스를 지정했습니다. 이 경우 ArrayList에 Account 타입 또는 그 하위 클래스의 요소만 추가할 수 있게 됩니다. ArrayList 클래스의 메서드들을 직접 사용할 수 있습니다.
내일 til에는 제네릭에 관해서 자세하게 작성할 예정입니다.
'TIL' 카테고리의 다른 글
try catch 쓰는 이유 (0) | 2023.03.14 |
---|---|
Day39(정수제곱근판별,Math.pow,Math.sqrt) (0) | 2023.03.13 |
Day37(랜덤은 테스트코드 하기 힘들다.) (0) | 2023.03.10 |
Day36() (0) | 2023.03.09 |
Day35(퀘스트 하면서 겪은 참조형타입 비교, 자바의 특징,JVM,Lamda,추상화) (0) | 2023.03.08 |