Javame에서 추상 클래스 (Object)의 클래스를 어떻게 얻습니까?

StackOverflow https://stackoverflow.com/questions/161614

  •  03-07-2019
  •  | 
  •  

문제

런타임에 객체 클래스를 가져와야합니다.

비 임금 수업의 경우 다음과 같은 작업을 수행 할 수 있습니다.

public class MyNoneAbstract{
    public static Class MYNONEABSTRACT_CLASS = new MyNoneAbstract().getClass();

그러나 추상적 인 수업의 경우 이것은 작동하지 않습니다 (항상 나에게 제공합니다. Object)

public abstract class MyAbstract{
    public static Class MYABSTRACT_CLASS = MyAbstract.class.getClass();

이 코드는 Javame 환경에서 실행됩니다.

도움이 되었습니까?

해결책

당신은 그냥 필요합니다

MyAbstract.class

그 표현은 myAbStract를 나타내는 클래스 객체를 반환합니다.

다른 팁

추상적 인 경우에서 원하는 코드는 다음과 같습니다.

public abstract class MyAbstract{
    public static Class MYABSTRACT_CLASS = MyAbstract.class;
}

비록 개인적으로 상수를 정의하는 것을 귀찮게하지는 않지만 MyAbStract.class를 사용했습니다.

나는 당신이 쓴 코드가 클래스 '객체'가 아니라 '클래스'를 반환 할 것으로 예상했을 것입니다.

여기에는 더 많은 정보가 필요하다고 생각합니다. Java에서는 추상 클래스를 인스턴스화 할 수 없습니다. 즉, 런타임의 객체는 클래스가 추상적 일 수 없습니다. 모든 추상적 인 방법을 구현하는 서브 클래스 여야합니다. Javame에서 Object.getClass() 필요한 전부가되어야합니다. 어떻게 든 런타임에 클래스 계층 구조를 재구성하려고합니까?

이 경우 대신 이와 같은 것을 구현할 수 있습니다.

public String getClassHierarchy() {
    return super.getClassHierarchy() + ".MyAbstract";
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top