如何在JavaME中获取抽象类(对象)的类?
时间:2020-03-06 15:01:06 来源:igfitidea点击:
我需要在运行时获取对象的类。
对于非抽象类,我可以做类似的事情:
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"; }