2012-09-08 5 views
1

다시 한번 저는 프로젝트에 대한 질문을하고 있습니다. 저는 Java에서 전체 newb처럼 느낍니다 ... 어쨌든, 저는 최근에 ResourceBundle에 대해 말했습니다. 내 진짜 문제는 클래스의 전반적인 Oracle 설명서를 이해할 수없고 컴파일 시간 오류가 발생한다는 것입니다.
먼저 세 개의 번들 mwb extends java.util.ResourceBundle과 두 번째 mwb_el extends mwb 및 세 번째 mwb_en extends mwb을 만들었습니다. 나는 타입의 변수를 Object[][]으로 만들고 getContents()이라는 return cotents;이라는 메소드를 작성했습니다! 그런 다음 각 클래스에 들어가서 각 행의 두 번째 필드 값을 변경했습니다 (키, 값이 아님). 아니요. 나는 값을 얻는 것을 처리하는 방법을 실제로 알 수 없다는 점에 매달려 있습니다. 자습서와 예제를 확인했지만 더 혼란 스러웠습니다. 내가 필요한 것은 누군가가 나에게 설명하는 것입니다리소스 번들 - 설명하는 사람은 누구입니까?

  1. 어떻게 내가 만들고 클래스의 초기화 MWB 객체가 나는 가 원하는 로케일을 얻을 수 있을까요.

  2. 특정 값을 얻는 방법. getObject(), getString()도 getContents() 및 심지어는 handleGetObject()를 에 쓸모 없게 재정의했습니다.

    미리 감사드립니다. :)

+2

왜 'ResourceBundle'을 확장하고 있습니까? 가능하다면 우리가하는 일을 보여주십시오. 또한이 자습서 - http://docs.oracle.com/javase/tutorial/i18n/intro/after.html을 확인하십시오. –

+0

그러면 자원 번들을 어떻게 만들 수 있습니까? 저는 .properties 파일을 만듭니다. 이 확장자를 가진 텍스트 파일일까요? –

답변

3

속성 파일에는 키/값 쌍의 메시지가 있어야합니다.

예컨대

 
key1=message1 
key2=message2 

는 "MessagesBundle_en_US.properties"라는 자원 파일이있는 경우 다음과 같이 당신이 그것을로드 할 수 있습니다.

Locale locale = new Locale("en", "US"); 
ResourceBundle messages = ResourceBundle.getBundle("MessagesBundle", locale); 

다음에 messages.getString("key1")은 "message1"을 반환해야합니다.

+0

덕분에 많은 도움이되었습니다. –

+0

당신은 오신 것을 환영합니다. –

관련 문제