문제

지난주에 젊은 학생이 마샬링이 캐스팅과 같은지 묻습니다. 내 대답은 확실히 아니었다. 마샬링은 세랄화이며, 캐스팅은 유형 변환 / 강요와 관련이있는 반면, 네트워크로 전송하기 위해 OBJET의 메모리 표현을 바이트로 변환하는 방법입니다.

나중에, 마샬링은 특별한 캐스팅 사례로 볼 수 있다고 생각했던 질문을 다시 생각했습니다. 예를 들어 메모리 표현의 변환은 XML에 있습니다. 그러면 해당 XML 파일의 해당 XSD 문법에 의해 정의 된 유형에 "캐스팅"한다고 말할 수 있습니다.

이것에 대해 어떻게 생각하십니까?

도움이 되었습니까?

해결책

캐스팅은 데이터 유형을 수정하지 않습니다. 그것은 큰 차이점입니다. 당신이 무언가를 마샬링 할 때, 당신은 데이터를 다른 것으로 변환하고 있습니다.

간단한 캐스트는 객체가 내부적으로있는 것이 아니라 객체를 해석하는 방식 만 변경합니다.

나는 낯선 사람들이 혼란 스러울 수있는 다른 사람들이 분명해야한다는 데 동의합니다.

다른 팁

마샬링은 일반적으로 기술 경계 (예 : 관리/관리되지 않은 경우와 같이 네트워크를 가로 질러 또는 하나의 메모리 유형으로가는 것)에 관한 것이며, 캐스팅은 일반적으로 동일한 기술 경계 내에 있으므로 분명히 다른 것들이라고 생각합니다.

우리가 두 가지 접근법에 대해 동일한 용어를 사용하면 다른 행동을 가지고 있기 때문에 다르게 정의해야한다는 것은 매우 혼란 스럽습니다.

둘 다 "유형 변환"이지만, 다른 종류의 유형 변환입니다. 캐스팅은 일반적으로 관련 객체 유형 (예 : 슈퍼 클래스에서 서브 클래스로 다운 캐스트) 사이에있는 반면 마샬링은 객체 그래프에서 예를 들어있을 수 있습니다. 평범한 텍스트 표현.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top