2011-10-31 3 views
2

바보 같은 질문에 사과드립니다. 검색 할 적절한 용어를 찾을 수 없습니다. 나는이 문제에 불과하다 capture#741 무슨 뜻 무엇인지 추측캡쳐 오류 메시지 XXX (Java Generics)

/Users/alf/Work/concise.svn/ExtendedSet/src/it/uniroma3/mat/extendedset/transactions/PairSet.java:[230,28] inconvertible types 
found : java.util.Collection<capture#741 of ? extends it.uniroma3.mat.extendedset.transactions.Pair<XT,XI>> 
required: it.uniroma3.mat.extendedset.transactions.PairSet<XT,XI> 

: 타사 소스를 컴파일하려고, 나는 다음과 같은 컴파일 오류에 충돌했습니다? 재 컴파일을 시도 할 때마다 # 이후의 숫자가 변경됩니다. 어떤 방식 으로든 도움이되는지 확실하지 않습니다.

업데이트 :

이 문제의 코드가 있었다

,

public static <XT, XI> PairSet<XT, XI> newPairSet(Collection<? extends Pair<XT, XI>> ps, boolean compressed) { 
    if (ps instanceof PairSet) 
     return (PairSet<XT, XI>) ps; 

및 수정이 javac error: inconvertible types with generics? 작품에서 제안이 잘-하지만 capture#741은 무엇을 의미합니까?

+3

캡쳐 # xxx는'PairSet '을 사용하면'?'의 자리 표시 자입니다. 실제 형식 매개 변수와 호환되지 않는 형식 매개 변수로 캐스팅하려고합니다. – Stephan

+0

고맙습니다. – alf

+0

@Stephan - 댓글이 아닌 답변으로 게시 할 수 있습니까? 다음 alf는 그것을 받아 들일 수 있었고이 질문은 답이없는 목록에서 나왔습니다. –

답변

1

PairSet<?,?>을 사용하면 캡처 # xxx는 제네릭 형식 인수 ?의 자리 표시 자입니다. 실제 형식 매개 변수와 호환되지 않는 형식 매개 변수로 캐스팅하려고합니다.

실제 형식 인수를 모르면 PairSet으로 캐스팅하고 나중에 XT 또는 XI로 캐스팅 할 수 있습니다.