繁体   English   中英

如何在JavaME中获取抽象类(对象)的类?

[英]How do you get the Class of an Abstract class (Object) in JavaME?

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

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

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的Class对象。

您要在抽象情况下使用的代码是:

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

尽管我个人不会麻烦定义常量,而只是在整个过程中使用MyAbstract.class。

我希望您编写的代码返回的是类“ Class”,而不是类“ Object”。

我认为这里需要更多信息。 在Java中,不能实例化抽象类。 这意味着对象在运行时不能具有抽象的类。 它必须是实现所有抽象方法的子类。 在JavaME中, Object.getClass()应该就是您所需要的。 您是否以某种方式试图在运行时重新构造您的类层次结构?

在这种情况下,您可以改为执行以下操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM