2014-03-31 5 views
2

저는 java를 매우 신작으로 사용합니다. 내가 XML 파서를 가지고 있고 그것으로부터 객체를 생성한다고 해보자. 내가 구문 분석 할 수없는 경우 난 예외를 던질 수 있도록 내가 만들고있어 반대하는 알 필요가 내 파서 클래스에서java와 동등한 C# typeof()

parser p = new parser(typeof(myTargetObjectType)); 

: 같은 C#에서 내가 할 거라고. jave에서 동일한 작업을 수행하는 방법은 무엇입니까? 난 내가 모든 언어가 뭔가를하고있는의 그것의 자신의 방법이 이해 typeof(myObject)


같은 인수를 할 수있는 방법을 의미한다. Java에서 어떤 방식으로 진행되는지 묻습니다.

+0

봐가. –

답변

4

자바는 Class 클래스를 Java 유형의 모든 반성 작업에 대한 진입 점으로 사용합니다. 클래스 Class

인스턴스는 Java 응용 프로그램을 실행하는 의 클래스 및 인터페이스를 나타냅니다

Class 객체로 표현되는 객체의 유형을 얻으려면, 당신은 모두에 의해 상속 Object#getClass() 메소드를 호출 할 수 있습니다 참조 유형.

Object의 런타임 클래스를 반환합니다.

기본 유형에는이 작업을 수행 할 수 없습니다 (getClass() 호출). 그러나 기본 유형에는 연결된 Class 객체도 있습니다. 할 수 있습니다

int.class 

예를 들어.

1
public class Main { 
    public static void main(String[] args) { 
    UnsupportedClass myObject = new UnsupportedClass(); 
    Parser parser = new Parser(myObject.getClass()); 
    } 
} 

class Parser { 
    public Parser(Class<?> objectType) { 
    if (UnsupportedClass.class.isAssignableFrom(objectType)) { 
      throw new UnsupportedOperationException("Objects of type UnsupportedClass are not allowed"); 
    } 
    } 
} 

class UnsupportedClass {} 

아니면 개체의 인스턴스를 갖고 있기 때문에,이 쉽습니다 :`Class` 객체에

Parser parser = new Parser(myObject); 

public Parser(Object object) { 
    if (object instanceof UnsupportedClass) { 
      throw new UnsupportedOperationException("Objects of type UnsupportedClass are not allowed"); 
    } 
}