Error/Java

Error/Java

[Java] 제네릭 클래스에서 타입 파라미터 누락시 "cannot find symbol" 에러

1. 문제public class ResponseDTO { private List data; // T가 무엇인지 정의되어 있어야 함}위와 같이 작성하니까 에러가 발생한다. 에러 메세지는 'cannot find symbol'인데 왜 발생하는 걸까? 2. 문제 원인자바의 제네릭(Generic) 문법에서 는 타입 파라미터(parameterized type)를 선언하는 것이다. 이 선언은 컴파일러에게 T가 어떤 타입으로 사용될지를 알려주는 역할을 한다. 만약 위와 같이 public class ResponseDTO처럼 를 생략하면, T는 선언되지 않은 정의되지 않은 심볼(symbol) 이 되기 때문에 다음과 같은 에러가 발생한다. 위는 매개변수 없이 함수 내부에서 x를 쓰는 것과 같은 오류라고 한다. 3. ..

Error/Java

[Java] 이클립스 Lombok 설치 되었는데도 못 알아 먹을 때, ~ is undefined for the type TodoEntity 오류

1. 문제롬복 설치 후, @Data 에너테이션으로 getter, setter 생성된 것을 Outline으로 확인했는데도,getId() is undefined for the type TodoEntity위 에러가 뜨면서, getId()가 정의되어 있지 않는다고 나온다. 2. 문제 원인Lombok이 제공하는 @Data 어노테이션이 제대로 인식되지 않았기 때문이다. @Data는 자동으로 getId(), getTitle() 같은 getter 메서드를 생성해주지만, Eclipse에서 Lombok 설정이 안 되어 있으면 이 메서드들을 컴파일러가 인식하지 못한다. 인텔리제이만 쓰다가 이클립스 쓰려니까 기억이 가물가물한 것도 있다. 이클립스에서 @Data, @Builder 같은 Lombok 애너테이션을 썼을 때도, 컴파..

Error/Java

[Lombok] @Builder 어노테이션을 사용한 객체 생성 방식

1. @Builder 적용 및 사용 방법@Builder@NoArgsConstructor@AllArgsConstructor@Datapublic class TodoEntity { private String id; // 이 오브젝트의 아이디 private String userId; // 이 오브젝트를 생성한 사용자의 아이디 private String title; // Todo 타이틀(예: 운동하기) private boolean done; // true - todo를 완료한 경우(checked)}클래스에 @Builder 어노테이션을 사용하면 builder 패턴을 적용해서 객체를 생성할 수 있다. ** 참고 : 위와 같이 Entity에 @Builder, @NoArgsConstructor, @AllArgs..

Error/Java

[Getter] Boolean, Boolean Getter 메서드 이름 규칙

1. boolean, Boolean 차이Java에서 데이터 타입(자료형)은 기본형(Primitive Type), 참조형(Reference Type) 2가지 타입이 있다. 아래는 기본 자료형인데 표에 있는 8가지만 존재하기 때문에 그냥 외우면 된다. 자바에는 데이터를 저장할 때 메모리의 두 곳을 이야기하는데 하나는 스택(stack), 다른 하나는 힙(Heap)이 있다. 기본형은 참조 없이 바로 스택(stack)에 저장하고, 참조형은 참조 변수는 스택(stack)에 저장하고 실제 값은 힙(Heap)에 저장한다. 즉 기본형은 값을 바로 꺼내 쓰기 때문에 속도가 빠르고 참조형은 참조 주소를 통해 실제 값을 꺼내 쓰기 때문에 상대적으로 속도가 느리다. 그리고 기본형의숫자는 0, 0.0, character는 '\u..

Error/Java

cmd, console "has been compiled by a more recent version" 에러

1. 문제 대략 해석해 보자면 내가 컴파일한 class file version은 61.0인데, 55.0까지만 지원하는 class file version이라 실행하지 못한다는 내용이다. 즉 최근 JDK로 컴파일해서 이전 JDK버전으로는 실행 못한다. JDK Version에 따른 class file version이 있다. 2. 문제 해결 방법은 1. 이클립스를 JDK 11버전으로 바꾸고 컴파일한다. 2. 컴파일 환경에서 더 높은 버전으로 바꿔 실행하게 한다. -> 이 방법이 가장 쉬움 둘이 순서 바꿔줌. JDK 실행할 때 path에 있는 경로를 훑는데 처음에 있는 JDK가 먼저 사용되어서 둘이 순서를 바꾼다. 잘 출력된다.

돌맹이떼굴떼굴
'Error/Java' 카테고리의 글 목록