Javame에서 추상 클래스 (Object)의 클래스를 어떻게 얻습니까?
문제
런타임에 객체 클래스를 가져와야합니다.
비 임금 수업의 경우 다음과 같은 작업을 수행 할 수 있습니다.
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";
}
제휴하지 않습니다 StackOverflow