채널톡 아이콘

인프런 커뮤니티 질문&답변

박정아님의 프로필 이미지

작성한 질문수 17

코드로 배우는 React with 스프링부트 API서버

REST 방식 컨트롤러 만들기(2)-LocalDateFormatter ㅠㅠ;

해결된 질문

작성

·

61

·

수정됨

0

선생님, 안녕하세요~

섹션 3. 스프링부트와 API서버 => REST 방식 컨트롤러 만들기(2)에서 4:06분 근처

=> LocalDateFormatter에서 오류가 납니다.

 

CustomServletConfig까지 작성하고 실행하면 아래와 같은 오류가 나옵니다.

C:\backend2\serverapi\serverapi\src\main\java\org\zerock\serverapi\controller\formatter\LocalDateFormatter.java:12: error: type Formatter does not take parameters

public class LocalDateFormatter implements Formatter<LocalDate> {

^

앞.뒤로 돌려보면서 찾아 보려 했는데 잘 모르겠습니다. LocalDateFormatter만드는 부분부터 오류가 납니다.

image.png

죄송하지만 확인하시면 답변 부탁 드립니다.

감사합니다.

 

코드 첨부합니다.

package org.zerock.serverapi.controller.formatter;

import org.hibernate.engine.jdbc.internal.Formatter;

import java.text.ParseException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

import static java.awt.SystemColor.text;

public class LocalDateFormatter implements Formatter<LocalDate> {
    @Override
    public LocalDate parse(String Text, Locale locale) throws ParseException {

        return LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
    }


    @Override
    public String print(LocalDate object, Locale locale) {
        return DateTimeFormatter.ofPattern("yyyy-MM-dd").format(object);
    }

}

답변 2

0

구멍가게코딩단님의 프로필 이미지
구멍가게코딩단
지식공유자

import가 좀 이상합니다.

 


import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

import org.springframework.format.Formatter;

/**
 * LocalDateFormatter
 */
public class LocalDateFormatter implements Formatter<LocalDate>{

  @Override
  public LocalDate parse(String text, Locale locale) {
      return LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
  }

  @Override
  public String print(LocalDate object, Locale locale) {
      return DateTimeFormatter.ofPattern("yyyy-MM-dd").format(object);
  }
  
}
박정아님의 프로필 이미지
박정아
질문자

에고... 열심히 하다 집중력이 떨어졌나??? 덕분에 잘 해결했습니다.
감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

박정아님께서 LocalDateFormatter를 구현할 때 발생한 오류에 대해 설명드리겠습니다. 주어진 오류 메시지를 통해 몇 가지 가능성을 점검해 볼 수 있습니다.

발생한 문제와 해결책

  1. 인터페이스 불일치:

    • 오류 메시지에서 type Formatter does not take parameters라는 부분은 Formatter 인터페이스에 제네릭 타입 파라미터를 잘못 적용했을 가능성이 있습니다. 스프링 프레임워크의 경우, org.springframework.format.Formatter<T> 인터페이스를 사용해야 LocalDate와 같은 타입을 만들 수 있습니다.
  2. 올바른 Formatter import 확인:

    • java.util 패키지에 있는 클래스와 혼동하여 잘못된 Formatter를 사용하고 있을 가능성이 있습니다. 반드시 스프링 패키지의 Formatter를 사용해야 합니다.
  3. 샘플 구현 예시:
    ”`java
    import org.springframework.format.Formatter;
    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;
    import java.util.Locale;

public class LocalDateFormatter implements Formatter {

   private static final String DATE_PATTERN = "yyyy-MM-dd";
   private final DateTimeFormatter formatter;

   public LocalDateFormatter() {
       this.formatter = DateTimeFormatter.ofPattern(DATE_PATTERN);
   }

   @Override
   public LocalDate parse(String text, Locale locale) {
       return LocalDate.parse(text, this.formatter);
   }

   @Override
   public String print(LocalDate object, Locale locale) {
       return object.format(this.formatter);
   }

}
“`

  1. 이미지와 코드 확인:
    • 제공된 이미지에서는 잘못된 패키지나 import 문제 때문에 오류가 발생한 것일 수 있습니다. 이미지와 동일한 환경에서 정확한 클래스와 인터페이스 사용 여부를 확인해 보세요.

추가 자료

유사한 문제를 경험한 다른 질문들 또한 참고하실 수 있습니다. 예를 들어, “테이블이 생성되지 않습니다”는 설정 관련 문제들을 다루고 있으며, 비슷한 컴파일 문제 해결에 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.