Java Heap Pollution

1803 단어
레 퍼 런 스
The Java™ Tutorials - wikipedia - Heap pollution
콘 셉 트
위 키 백과
In the Java programming language, heap pollution is a situation that arises when a variable of a parameterized type refers to an object that is not of that parameterized type. This situation is normally detected during compilation and indicated with an unchecked warning. Later, during runtime heap pollution will often cause a ClassCastException.
대 의 는 Heap Pollution 이란 하나의 범 형 류 가 실제 적 으로 계승 구조 내 대상 인 스 턴 스 를 참조 하지 않 는 것 을 가리 키 는 것 을 말한다. 즉, 인용 유형 은 실제 대상 의 같은 종류 가 아니 거나 아버지 류 를 가리킨다. 이런 상황 은 보통 실 행 될 때 ClassCastException 이상 을 초래 할 수 있다.
예시
    public static void rawType(){
        Set set = new HashSet();
        //   Raw Type   Set>            
        //            
        set.add(20);    // warning
        Iterator iterator = set.iterator(); // warning
        while (iterator.hasNext()){
            // Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
            String string = iterator.next();
            //          ,    (String)    
            //     
            // iterator.next();
        }
    }

    public static void objectCast(){
        List stringList;
        List integerList = new ArrayList<>();
        Object obj = integerList;
        stringList = (List) obj; // warning
        stringList.add("Hello");    // no warning
        // Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
        Integer integer = integerList.get(0);
    }

@ SafeVarargs 주석
컴 파일 러 의 경 고 를 제거 할 뿐 입 니 다.

좋은 웹페이지 즐겨찾기