2009-12-30 6 views

답변

1

그것은 이상적인 아니에요 사용할 수있는 일에 대해 갈 것이다, 그러나 당신은 "있다"연산자를 사용할 수 있습니다. 사물을 파악하기 위해 if statment의 스위치에 던지십시오.

if(obj is ClassA) { 
    //sweetness 
} else if (obj is ClassB) { 
    //awesomeness 
} 

형식은 다른 답안에서 제안한대로 작동하지 않습니다. 그것은 모든 경우에 "객체"를 반환 할 가능성이 있습니다. instanceof하지만 작동합니다.

+0

, 내가 어떻게 구현하는 것이이 "입니다"또는 case 문에서 instanceof를? – numerical25

+0

예를 들어, 다른 사람의 경우 사용하십시오. getQualifiedClassName()으로 작업하고 있다면 스위치를 사용할 수 있지만 else를 사용하면 간단합니다. –

0

getQualifiedClassName()을 사용하여 객체의 클래스 이름을 가져올 수 있습니다. 또한 개체의 모든 메서드와 속성에 대한보다 완전한 설명을 제공하는 describeType()을 사용할 수도 있습니다.

에 대한 정보가 모두 여기에 : http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html

그것은 비록 이상적인 상황 같은 소리하지 않습니다. 모든 항목을 처리하는 방식을 표준화 할 수있는 무언가를 원할 수 있습니다. 예를 들어 다음

public interface IObject { 
    function doSomething():void; 
} 

...

그래서
function myMethod(obj:IObject):void { 
    obj.doSomething(); 
} 
+0

그건 좋은 생각 같아. BUt 나는 obj로 무엇인가하고 싶다. 타입에 따라 특별한 변수에 저장한다. 그래서 case 문을 사용하여 어떤 유형인지 알아야합니다. case 문과 함께 is 또는 instanceof를 적용하는 방법을 파악하려고합니다. – numerical25

+0

인터페이스 데이터 형식 내에서 메서드를 호출 할 수없는 것으로 보입니다.이 메서드를 작동시키기 위해서는 원래 형식으로 다시 캐스팅해야합니다. 순서대로. iobj.doSomething(); 가 작동하지 않습니다. 하지만 개체 (iobj) .doSomething(); 않습니다. 내가 놓친 게 있니? – numerical25

관련 문제