자바 동적 형식 보안

1130 단어 자바
집합 에 그룹 데 이 터 를 삽입 하려 고 할 때 명확 한 지정 형식(예 를 들 어 List)을 제외 하고 자바 util.collections 가 제공 하 는 방법 으로 귀 요 미 를 검사 할 수 있 습 니 다.정적 방법

checkedCollection(Collection<E> c, Class<E> type) 
checkedList(List<E> list, Class<E> type) 
checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType) 
checkedSet(Set<E> s, Class<E> type) 
checkedSortedMap(SortedMap<K,V> m, Class<K> keyType, Class<V> valueType) 
checkedSortedSet(SortedSet<E> s, Class<E> type) 

   이 방법 들 은 동적 검 사 를 원 하 는 용 기 를 첫 번 째 매개 변수 로 받 아들 이 고 강제 적 으로 요구 하고 자 하 는 유형 을 두 번 째 매개 변수 로 합 니 다.    잘못된 유형 을 삽입 하려 고 할 때 유형 전환 이상 이 발생 합 니 다(ClassCastException).예 를 들 어

List<Dog> dogs2=Collections.checkedList(new ArrayList<Dog>(), Dog.class);
dog2.add(new Cat());

    Dog 클래스 에 Cat 를 삽입 하 는 것 을 방지 하려 고 할 때 이상 이 발생 합 니 다.하지만 내 보 내기 클래스 를 용기 에 넣 으 면 정상적으로 작 동 할 수 있 습 니 다.
    나의 의문:그의 실현 원 리 는 어떤 것 일 까?JDK 에서 대응 하 는 실현 을 찾 지 못 했다.

좋은 웹페이지 즐겨찾기