你如何在JavaME中获得抽象类(Object)的类?

时间:2008-10-02 10:08:57

标签: java java-me

我需要在运行时获取对象的类。

对于非抽象类我可以做类似的事情:

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环境中运行。

3 个答案:

答案 0 :(得分:3)

你只需要

MyAbstract.class

该表达式返回表示MyAbstract的Class对象。

答案 1 :(得分:0)

抽象案例中您需要的代码是:

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

虽然我个人不打算定义常量,只是在整个过程中使用了MyAbstract.class。

我原本希望你写的代码返回类'Class',而不是类'Object'。

答案 2 :(得分:0)

我认为这里需要更多信息。 在Java中,无法实例化抽象类。 这意味着运行时的Object不能使其类成为抽象类。 它需要是一个实现所有抽象方法的子类。 在JavaME中,Object.getClass()应该就是您所需要的。 你是否试图在运行时重建你的类层次结构?

在这种情况下,你可以实现类似的东西:

public String getClassHierarchy() {
    return super.getClassHierarchy() + ".MyAbstract";
}