当前位置: 首页 > 面试题库 >

如何获取父基类对象super.getClass()

韩弘壮
2023-03-14
问题内容

我对Java(作为C ++程序员)有一点疑问。

我有2个相关课程:

public class Patient() {
...
}

public class PatientPersistent extends Patient {
...
    public void foo() {
    System.out.println(super.getClass().toString());
    }
}

这将输出:

org.example.smartgwt.server.model.PatientPersistent类

有没有一种方法可以获取父类的类型?即

org.example.smartgwt.server.model.Patient类。

这将使我能够概括一些我需要在每个可怕的孩子中实现的方法。

谢谢!

更新

我正在使用推土机将我的域Hibernate对象转换为可序列化的版本。我不希望客户知道这一点,因此客户只能看到 Patient
类。在服务器端,我执行转换。

public class DataObject<Type> {

    private static final Class<Object> DstType = Type;

    public Object convert(Object srcData, final BeanFactory factory) {
        Mapper mapper = (Mapper)factory.getBean("dozerMapper");

        return (Object)mapper.map(srcData, DstType);
    }
}

public class Patient() implements Serializable {
    public Set foo;
}

public class PatientPersistent extends Patient {

    public org.hibernate.collection.PersistentSet foo;
    DataObject<Patient> converter = new DataObject<Patient>;

    public Patient convertToSerializable(final BeanFactory factory) {
        return (Patient)converter.convert(this, factory);
    }
}

public class main() {
    // This object is not serializable so I cannot send it to the client
    PatientPersistent serializableBar = new PatientPersistent();

    // Using Dozer to copy the data PatientPersistent -> Patient
    // This will load the Dozer spring bean and copy as mapped
    Patient copiedSerializableData = serializableBar.convertToPersistent(bar, factory);
}

我知道这段代码行不通,但这只是为了说明我的意思。我希望能够 对象 转换
为可序列化的形式,以便可以将其发送回客户端。这就是为什么我想给父母的类型。调用 映射器 将始终是同一对象,源对象和Dest.class。

也许我对Java太困惑了。

谢谢


问题答案:
getClass().getSuperclass()

但是不要使用这个。这肯定是不良设计的标志。



 类似资料:
  • 父类: 子电话对象(第一级): 我正在尝试获取person对象,其phone对象类型为home,其编号应包含“888”。 从上面的流代码,我能够得到手机对象。但是如何在相同的函数中获得该电话对象的父对象呢?。 我尝试了这种方式,我得到null不匹配的对象。

  • 我有一个场景,从多个json文件中读取数据,并将其映射到特定的json格式。 J输出: 我试图将文件读取的输入直接映射到有效的json格式,以避免读取一个jsonObj中的所有文件,将其映射到一个对象(类)中,并在新对象中添加每个参数以创建jsonoutput。 我还希望在合并这些json内容时处理共享的可变状态,因此我使用锁(obj),进行此映射的方法是异步方法。 我正在使用JSchema生成预

  • 问题内容: 我有以下(嵌套)对象: 接下来,我要做的就是像这样引用子对象: 现在,我想做的就是从变量中获取对对象的引用。就像是: 这可能吗? 问题答案: 否。无法知道它来自哪个对象。 而这两个只是有同一个对象的引用。 您也可以这样做: 您现在有三个引用,和,同一个对象。它们都不是特别的。

  • 问题内容: 我创建了一个JavaScript对象,但是如何确定该对象的类呢? 我想要一些类似于Java的方法。 问题答案: JavaScript中没有Java的完全对应版本。通常,这是由于JavaScript是一种基于原型的语言,而不是Java是一种基于类的语言。 一些例子: 注意:如果使用Uglify编译代码,它将更改非全局类名。为了防止这种情况,Uglify有一个参数,可以使用gulp或gru

  • 问题内容: 我想访问作为的实例的基础类的类名。 这可能吗? 问题答案: 您可以通过调用获取创建代理的对象 注意,在没有 基础类 的情况下。代理定义为: 接口 调用处理程序 通常将包装好的类传递给具体的调用处理程序。

  • 主要内容:1. ServletActionContext,2. ServletContextAware,参考在Struts2中,可以使用以下两种方法来获取ServletContext对象。 1. ServletActionContext 直接从 org.apache.struts2.ServletActionContext 获取 ServletContext 对象。 2. ServletContextAware 让你的类实现了org.apache.struts2.util.ServletCont