2014-12-13 7 views
2

는 내가 이해 사투를 벌인거야 어떤 의미로 여기에 라인이 있습니다 https://docs.oracle.com/javase/specs/jls/se8/html/jls-18.html#jls-18.2.3유형이 배열 유형 인 여러 유형의 수퍼 유형을 가질 수 있으며 그 자체가 배열 유형이 아닐 수 있습니까?</p> <p>"

에서 자바 스펙에 설명 된 알고리즘을 사용하여, 타입 추론의 구현을 코드에 노력하고있어. .. 배열 유형 인 S의 수퍼 유형 중 가장 구체적인 유형은 S '[] (이것은 S 자체 일 수 있음)입니다. "

이 아닌 가장 구체적인 배열 유형은 일 수 있습니까? 즉, 유형이 배열 유형 인 수퍼 유형을 가질 수 있으며 그 자체가 배열 유형이 아니며 따라서 가장 특정한 종류의 유형이 될 수 있습니까?

내가 여기에 뭔가 분명한 것을 놓치고 있습니까? 사람이 제공 할 수있는 통찰력

감사합니다 ...

+0

제목이 실제 질문을 정확하게 나타내지는 않습니다. – EJP

+0

제목 질문은 설명과 동일합니다. 제목 질문을 반복하여 설명에 * 대한 단어를 입력하십시오. –

+0

당신이 인용 한 구절을 잘못 이해했습니다. * S *가 배열 타입이 아닌 것에 대해서는 아무 것도 말하지 않습니다. 단지 * S *가 '가장 구체적인'유형이 아닐 수도 있음을 의미합니다. – EJP

답변

1

는 더블 []를 선택하고 옵션 번호 [] 또는 [] 객체 다음 번호는 [] 가장 구체적인 이상형이 말. 형식 유추를 수행 할 때 여러 제약 조건이있을 수 있습니다. 형식을 추측 할 수도 있습니다 (Serializable [] & Comparable [])

+0

그래, 이제 질문을했습니다. 그리고 질문에 대한 삭제 된 주석에 감사드립니다. 배열 유형과 교차 유형에 상한 경계가있는 와일드 카드 유형을 사용할 수있는 방법이 많이 있다는 것을 깨달았습니다. 배열 타입 등 ... 아 글쎄, 조금 더 생각 해보고 받아 들일 수 있다고 생각할 것이다. –

+0

생각하지 않기 때문에 내 의견이 삭제 되었습니까? extends CharSequence [] 실제로는 하나의 유형입니다. 나는 그것이 무엇인지 완전히 모르겠다. 나는 자바 제네릭과 타입을 이해하려고 많은 시도를했지만 실패했다. 그러나 그들은 완전히 이해할 수 없다. –

+0

아니, 적어도 질문의 맥락에서 당신은 완전히 옳았습니다. 이것으로 실험하면서 Eclipse의 유형 유추 구현에 몇 가지 버그가 있음을 발견했습니다. 하하는 내 바보 같은 질문에 대해 기분이 나아지고 나를 협박합니다. 건배. –