java.util.Properties
클래스는 키와 값이 모두 String 인 맵을 나타 내기위한 클래스입니다. 이는 Properties
개체가 텍스트 파일 인 .properties
개의 파일을 읽는 데 사용되기 때문입니다.java.util.Properties가 Map <Object, Object>를 구현하고 Map <String, String>을 구현하지 않는 이유
Java 5에서 Map<Object,Object>
을 구현하고 Map<String,String>
을 구현하지 않는 이유는 무엇입니까?
javadoc 상태 :
속성 해시 테이블로부터 상속 때문에 putAll에 넣어 및 방법은 객체 속성에 적용될 수있다. 호출자가 키 또는 값이 String이 아닌 항목을 삽입 할 수 있으므로 사용하지 않는 것이 좋습니다. 대신 setProperty 메소드를 사용해야합니다. String 또는 String이 아닌 키 또는 값이 포함 된 "손상된"Properties 객체에서 store 또는 save 메서드가 호출되면 호출이 실패합니다.
키와 값 모두 String이어야하기 때문에 적절한 제네릭 형식을 사용하여 정적으로 적용하지 않는 이유는 무엇입니까?
Properties
구현 Map<String,String>
은 사전 Java 5 용으로 작성된 코드와 완전히 역 호환되지 않을 것입니다. 비 문자열을 Properties 객체에 붙여 넣은 코드가 있으면 Java 5에서 더 이상 컴파일하지 않습니다. 하지만 ... 그게 좋은 것 아닌가요? generics의 전체 요점이 컴파일 타임에 이러한 유형 오류를 잡아 내지는 않습니까?
사실 맵 x = new Properties()는 어느 쪽이든 작동합니다. 그 사람들은 properties.put ("flag", Boolean.TRUE); 저는 사람들이 모든 종류의 데이터를 Properties 객체에 넣었지만 결코 String이 아닌 키는 쓰지 않는 것을 보았습니다. ;) –
나는 그 대답을 더 명확하게 해주도록 고맙습니다. –
잠깐! Map