Android Studio에서 Generics Extends를 사용한 클래스에서 발생한 incompatible types 에러 질문드립니다.

조회수 1400회

이클립스 프로젝트를 안드로이드 스튜디오로 옮기는 중인데

Generic을 와일드카드로 상속받은 클래스에서 incompatible types 에러가 발생하네요

에러 메세지는 아래와 같이 나오고

Error:(113, 118) error: incompatible types: Class<LineRecordWriter> cannot be converted to Class<? extends RecordWriter<?,?>>

에러가 발생하는 부분의 코드는 아래와 같습니다.

Class<? extends RecordWriter<?, ?>> clsRecordWriter = (Class<? extends RecordWriter<?, ?>>) LineRecordWriter.class;

LineRecordWriter클래스는 다음과 같이 선언되어있습니다

class LineRecordWriter<K extends WritableComparable<? super K>, V extends Writable> extends RecordWriter<K, V>

Gradle로그에는 이렇게 나오는데

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Error:Execution failed for task ':app:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

' -Xlint:deprecation' 이 플래그로 다시 빌드하면 해결이 되는건지

그게 아니라면 어떻게 해결해야하는지 궁금합니다.

  • Class에 generic을 써야만 하는 이유가 있나요? 그렇지 않다면 통상 Class<?> 로 표기하거나 Class<LineRecordWriter>로 표기하면 될것 같습니다. 허대영(Daeyoung Heo) 2016.4.11 09:43
  • 말씀하신대로 해봤는데 에러가 나네요.. 그리고 제가 인계받은지 얼마 되지 않은 코드라서 generic을 쓰는지는 더 봐야할듯 싶습니다. 파츠군 2016.4.14 14:00

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.