0

SetOfMembers 목록을 비 직렬화하려는 중이므로 역 직렬화 후 각 구성원 객체를 개별적으로 가져 와서 지정된 이름과 일치시키는 것이 좋습니다.Java 목록에서 객체를 직렬화 해제하고 반환하면 호환되지 않는 유형 오류가 발생합니다.

위의 오류가 나타나는 유지하고 나는에 문제를 만들 수 없습니다 "회원 유형 변수입니다 회원으로 변환 할 수 없습니다 librarby.Member 호환되지 않는 유형. 회원은 클래스 SetOfMembers에 선언 된 객체를 확장" 내 코드. 내 코드를 잘못 설명하면 좋을거야. @SuppressWarnings ("확인되지 않음")을 사용했지만 도움이되지 않습니다. 도움을 청하십시오. 감사합니다는

Error

+2

텍스트로 코드를 포함하십시오. 이미지는 검색 할 수 없으며 텍스트 편집기로 복사 할 수 없으며 양질의 글꼴로 표시 할 수 없기 때문에 읽을 수 없게됩니다. – VGR

답변

0

내 첫번째 추측은

  1. 상단 및 코드의 하단 부분은 (다른 파일은 "최고"가져온 파일에
  2. 에 있다는 것입니다 : 수정은 deserializeMembers() 방법을 genericize하는 것입니다 대부분 IDE 권장 사항에 따라) library.Member 대신 java.lang.reflect.Member과 같은 다른 Member 클래스가 있으므로이 오류가 발생합니다.

이렇게 수정하려면 첫 번째 타일에서 가져 오기 섹션을 확인하십시오.

동일한 파일에 실제로 Member 클래스가 모두 필요하면 정규화 된 이름을 사용할 수 있습니다. 어쨌든 다음 코드가 작동합니다.

for(library.Member mem : Serialization.deserializeMembers()) 
+1

1. 상단 및 하단 코드는 동일한 패키지 "library"에 있습니다. 2. 다른 멤버 클래스를 가져 오지 않았습니다. 3. 주어진 메소드가 문제를 해결했습니다. 감사합니다. inbuilt 멤버 클래스와 ig에 대해서는 몰랐습니다. 여기 혼동입니다. – laish129

+0

Re (2), 오류 메시지는 구체적으로 제네릭 형식 매개 변수를 의미하는 * 형식 *을 참조합니다. 가져온 클래스가 아닙니다. – EJP

1

자바 목록 역 직렬화와 객체를 반환하는 것은 호환되지 않는 유형을

없음은하지 않습니다 오류

을 제공합니다.

  1. 이것은 컴파일 오류이며 컴파일 시간 코드를 컴파일에서 발생합니다. 'deserializing'일 경우.
  2. 오류는 deserialization과 관련이 없습니다. 이는 반복과 관련이 있습니다.
  3. 경고가 아니라 오류이므로 경고를 표시하지 않는 주석은 부적절합니다.

이 문제는 오류 메시지에 분명하게 설명되어 있습니다. 클래스의 전체 소스 코드 또는 그것이 발생하는 메소드를 제공하지 않았으므로 더 신뢰할 수있게 진행할 수 없습니다.

  • 첫번째 방법 SetOfMember
  • SetOfMember의 부재 <Member extends Object> 나타내는 파라미터이다

    그러나 I는 추측된다.

... 오류 메시지를 완전히 설명합니다. 문제는 정적 메서드 deserializeMembers()이 실제로 일반적이지 않다는 것입니다.

public static <Member extends Object> SetOfMember<Member> deserializeMembers() throws ...