2012-05-24 6 views
2

자바 프로그램에서 속성 파일을 사용하고 있습니다. 속성, 나는 propertyFile.getProperty(propertyKeyName);를 사용하여 몇 가지 변수에이 데려 갈거야 파일에서 나는 약간 재산의 필요성을 해요 때마다Java 프로그램 내에서 속성 파일의 모든 속성을 초기화 된 변수로 가져 오는 방법은 무엇입니까?

현재 : String propertyName1 = propertyFile.getProperty(propertyKeyName);

밖으로 명시 적 변수 (propertyName1)를 정의하고 초기화하는 것을 어떤 방법이 있나요 getProperty()을 사용하면 속성 파일의 모든 Key = Value를 내 프로그램에서 "String Key = Value"로 초기화 된 String 변수로 가져올 수 있습니까?

감사합니다, 찬드라

+0

기대하시는 것을 보여 주실 수 있습니까? –

+0

Java에서 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Properties.html을 살펴 보았습니까? 입력 스트림을 가져 와서 모든 속성을 문자열로로드합니다. –

답변

3

번호 변수는 컴파일 타임에 선언 - (적어도 예/정적 변수에 대한) 자신의 이름과 유형은 클래스 파일로 구운있다. 이름이 실행 시간에만 알려졌을 때 어떻게 그럴 수 있습니까?

속성 파일의 내용으로 인해 실행시 "존재하지 않는"변수를 참조하는 표현식을 작성하면 어떻게 될까요?

이제 무엇을 할 반사를 통해 클래스의 인스턴스를 초기화하는 클래스를 작성 - 당신은 당신의 클래스를 작성할 수

public class Person 
{ 
    private String firstName; 
    private String lastName; 
    private String jobTitle; 
    // Whatever... accessors etc 
} 

을 다음 값으로 Person의 인스턴스를 생성 반사를 사용 특성 파일에서 채워집니다. 이 메커니즘은 일부 속성이 누락 된 경우 (원하는 경우)로드 할 때 실패 할 수 있습니다.

+0

감사합니다. Jon Skeet. 내가 자바 초심자이기 때문에, 나는 반사 기능에 대해 모른다. 나는 그것을 통과하고 그것을 시도 할 것이다 ... – merlachandra

+1

@merlachandra : 초보자라면, 나는 잠시 반사에 잘 머무를 것을 제안 할 것이다. 일을 힘들지 만 간단하게 지금 당장하십시오. –

+0

제안 해 주셔서 감사합니다. 현재 내 프로그램에 개별 속성을 가져 오기 위해 getProperty()을 계속 사용하고 있습니다. – merlachandra