부모 클래스와 여러 개의 하위 클래스가 있습니다 (parent
및 child1
, child2
, child3
등).자바의 하위 클래스 변수에 부모 클래스 할당
I는 parents
의 2-D 배열을 취하고이 같은 1-D 어레이에 평탄화 함수가 : 호출 컨텍스트의
public parent[] flatten(parent[][] input);
를, I는 알고 I 배열을 전달할 때 모든 요소는 같은 유형이며, 그 유형은 하위 유형 중 하나입니다 (특히, 나는 그것이 어떤 하위 유형인지 압니다).
child1 c = flatten(input)[0];
내가 (관련 SO 게시물 : Assert an object is a specific type를) 타입의 주장에 대해 알고 : 나는 배열의 특정 요소를 가지고,이 같은 적절한 하위 유형의 변수에 할당 할 수 있도록하려면,하지만 어설 션이 성공하면 올바르게 유형화 된 변수에 실제로 할당하는 방법을 찾지 못하는 것 같습니다. 자바에서도 그런 일이 가능한가? 다른 언어 (예 : 이동)에서도 가능하다는 것을 알고 있습니다.
내가 타입 변환 (typecast)하면 틀릴 것입니다. 이 경우에는 발생하지 않습니다. 나는 단지 궁금하다. – joshlf
런타임시 ClassCastException을 발생시킵니다. 여기서 일어날 일이 아니라고 확신한다면 괜찮습니다. 그러나 이런 종류의 주조를 피하는 것은 일반적인 아이디어 일뿐입니다. –
음, 괜찮아. 나의 참조는 Go이고, 타입 캐스트는 컴파일 타임에 정확해야하고, 타입 어설 션 (별도의 언어 구조)은 런타임까지는 입증 될 수없는 캐스트에 사용됩니다. – joshlf