2009-04-16 4 views
0

이 코드는 Java < = 1.4로 잘 컴파일됩니다. 자바 경고 1.6 암캐와 신음 소리 :자카르타 커먼즈 콜렉션의 제네릭 사용하기 버퍼

는 "방법은 (Object)를 추가 원시 유형 컬렉션에 속하는 제네릭 형식의 컬렉션에 대한 참조 매개 변수가 있어야합니다."나는에 코드를 조정할 어떻게

import org.apache.commons.collections.Buffer; 
import org.apache.commons.collections.BufferUtils; 
import org.apache.commons.collections.buffer.UnboundedFifoBuffer; 

private Buffer connectqueue = BufferUtils.blockingBuffer(new UnboundedFifoBuffer()); 

... 

connectqueue.add(new Conn(this, address, port)); 

을 @SupressWarnings 지시문을 추가하지 않고 경고를 없앱니다.

문제는 Jakarta Commons Collections입니다. 버퍼는 제네릭이 아니지만 일반 java.util.Collection 인터페이스를 확장합니다.

답변

2

수 없습니다. 자카르타 커먼즈 (Jakarta Commons)가 제네릭을 지원할 때까지는 (이전 자바 버전에서도 빌드 할 수 있기를 희망하기 때문에), 경고를 표시하지 말아야한다.

fork of Commons Collections that supports genericsGoogle also has a Collections library이 있습니다. 나는 그들 중 하나가 Buffer를 가지고 있는지 확인하지 않았고 API를 전환해야 할 것입니다.

코드 중 어느 것도 1.4 이전 언어 기능을 사용하지 않는 경우 컴파일러의 언어 수준을 "1.4"로 설정할 수 있지만 그럴 가능성은 적습니다 (또는 바람직합니다).

아마도 @SupressWarnings 만 붙이면됩니다.

관련 문제