Development/Java

Warring-Type safety: The method add(Object) belongs to the raw type ArrayList. References to generic type ArrayList<E> should be parameterized

codedragon 2021. 12. 1. 03:25
반응형

 

 

 

경고메시지

 

Type safety: The method add(Object) belongs to the raw type ArrayList. References to generic type ArrayList<E> should be parameterized

 

 

 

경고 원인

ArrayList<E> <E>제네릭 타입에 자료형을 명시해 주어야 하시만 명시하지 않아서 발생하는 경고 메시지입니다. 그래서 모든 객체의 부모인 Object타입으로 처리되고 있습니다. 이 경우 데이터를 추가하거나 추출할 때 ArrayList에 존재하는 데이터의 타입을 일일이 확인해 주어 적절한 타입으로 형변환을 해주어야 하며 이렇게 하지 않을 경우 타입이 안전하지 않아 보다 안전한 코딩(시큐어코딩; 보안코딩)이 되지 않습니다.

경고메시지를 제거하려면 <E>  ArrayList에 추가하고자 하는 데이터 객체의 타입을 명시해 주면 됩니다.

 

Type unsafe ArrayList list1 = new ArrayList(10);
list1.add(new Integer(5));
Type safe ArrayList<Integer> list1 = new ArrayList<Integer>(10);
list1.add(new Integer(5));