수퍼 클래스에서 하위 클래스 유형을 가져 오려고합니다. 나는 슈퍼 클래스 에ActionScript3에서 수퍼 클래스의 하위 클래스 유형을 확인하는 방법
if(this is SubClass1)
을 시도했지만 실패했습니다.
이package{
import flash.display.Sprite;
public class TestSuperClass extends Sprite{
public function TestSuperClass(){
super();
trace((new SuperClass).isSubclass); // Output : false
trace((new Extended).isSubclass); // Output : true
}
}
}
internal class SuperClass
{
public function get isSubclass() : Boolean{
return this is Extended;
}
}
internal class Extended extends SuperClass {}
당신은 동적으로 할 수 있습니다 (즉 친화적이지 성능, 추한,하지만 작업 수행) :
정확히 무엇을하려합니까? 기본 클래스의 유형을 확인하는 것보다 더 좋은 방법이있을 수 있습니다. –
"is"키워드를 사용하면 문제가 발생한 것입니다. –
"this"가 super 유형으로 정의 된 코드에서 superclass 유형에 대해 "upcast"이기 때문에 실제로 실패 할 것이라고 생각합니다. (문서화되지 않았기 때문에 완전히 확신 할 수는 없지만 비슷한 행동을합니다. 슈퍼 클래스에서 해당 클래스의 새 인스턴스를 만드는 경우 동일한 문제가 발생하는지 궁금합니다. 무한 재귀/루프를 만들지 않도록 조심해야합니다. – shaunhusain