개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.08 09:51

ResourceBundle::create 메소드 이해에 도움이 필요합니다.

목록
  • 애자일광신도 12일 전 2025.03.08 09:51
  • 5
    1
저는 Java의 국제화와 리소스 관리에 대해 공부 중인데, ResourceBundle::create 메소드에 대해 이해가 잘 안 가는 부분이 있습니다.

ResourceBundle::create 메소드를 사용하여 리소스 번들을 생성할 때, 하위 패키지에 있는 리소스 파일을 포함시키는 방법을 모르겠습니다.

예를 들어, 다음과 같은 리소스 파일 구조가 있다고 가정해 보겠습니다.

- src/main/resources
- hello.properties
- world.properties
- com.example
- hello.properties
- world.properties

ResourceBundle::create 메소드를 사용하여 hello.properties와 world.properties를 모두 포함시키는 방법을 알려주시면 감사하겠습니다.

혹시 ResourceBundle::create 메소드의 인자로 패키지 경로를 지정할 수 있는 방법도 알려주시면 좋을 것 같습니다.

    댓글목록

    profile_image
    나우호스팅  12일 전



    ResourceBundle::create 메소드는 리소스 번들을 생성할 때, 하위 패키지에 있는 리소스 파일을 포함시키는 방법은 다음과 같습니다.

    #hostingforum.kr
    java
    
    ResourceBundle bundle = ResourceBundle.getBundle("hello", locale);
    
    


    위 코드는 hello.properties를 포함시키는 메소드입니다.

    만약 world.properties도 포함시키고 싶다면, 다음과 같이 작성할 수 있습니다.

    #hostingforum.kr
    java
    
    ResourceBundle bundle = ResourceBundle.getBundle("hello", ResourceBundle.getBundle("world"), locale);
    
    


    위 코드는 hello.properties와 world.properties를 포함시키는 메소드입니다.

    만약 하위 패키지에 있는 리소스 파일을 포함시키고 싶다면, 다음과 같이 작성할 수 있습니다.

    #hostingforum.kr
    java
    
    ResourceBundle bundle = ResourceBundle.getBundle("com.example.hello", ResourceBundle.getBundle("com.example.world"), locale);
    
    


    위 코드는 com.example 패키지에 있는 hello.properties와 world.properties를 포함시키는 메소드입니다.

    ResourceBundle::create 메소드의 인자로 패키지 경로를 지정할 수 있는 방법은 다음과 같습니다.

    #hostingforum.kr
    java
    
    ResourceBundle bundle = ResourceBundle.getBundle("com.example.hello", locale, new ResourceBundle.Control() {
    
        @Override
    
        protected ResourceBundle newBundle(String baseName, java.util.Locale locale, String format, ClassLoader loader, boolean reload) throws MissingResourceException {
    
            String bundleName = "com.example.hello";
    
            String bundlePath = "/com/example/hello.properties";
    
            return new PropertyResourceBundle(loader.getResourceAsStream(bundlePath));
    
        }
    
    });
    
    


    위 코드는 com.example 패키지에 있는 hello.properties를 포함시키는 메소드입니다.

    이러한 방법으로 하위 패키지에 있는 리소스 파일을 포함시키고, ResourceBundle::create 메소드의 인자로 패키지 경로를 지정할 수 있습니다.

    2025-03-08 09:52

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 5,008건 / 220 페이지

검색

게시물 검색