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


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

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' 이 플래그로 다시 빌드하면 해결이 되는건지

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

  • 2016년 04월 08일에 작성됨

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


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close