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

2023-11-25

我对 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

有没有办法获取父类类型? IE。

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

这将使我能够概括一些我需要在每个孩子身上实现的方法,这很糟糕。

Thanks!


UPDATE

我正在使用 Dozer 将我的域 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);
}

我知道这段代码不起作用,但这只是为了表明我的观点。我希望能够convert将对象转换为可序列化形式,以便我可以将其发送回客户端。这就是为什么我想给出父母的类型。呼叫mapper总是相同的东西,一个源对象和一个Dest.class。

也许我对java太困惑了。

Thanks


getClass().getSuperclass()

但不要使用这个。这无疑是糟糕设计的标志。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取父基类对象 super.getClass() 的相关文章

  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • 如何为小程序提供对文件系统写入的访问权限

    我在设置小程序的策略文件时遇到问题 我是第一次这样做 不知道如何在java中设置小程序的策略文件 实际上我想授予小程序在文件系统上写入的权限 为此我必须向小程序授予文件权限 所以我创建了一个名为 java policy 的文件 并将以下代码
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • OpenNLP 与斯坦福 CoreNLP

    我一直在对这两个包进行一些比较 但不确定该往哪个方向走 我简单地寻找的是 命名实体识别 人 地点 组织等 性别识别 一个不错的训练 API 据我所知 OpenNLP 和斯坦福 CoreNLP 提供了非常相似的功能 然而 Stanford C
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • Cucumber DataTable 错误 - io.cucumber.datatable.UndefinedDataTableTypeException:无法将 DataTable 转换为 cucumber.api.DataTable

    尝试使用 cucumber selenium java intelliJ 运行场景 但在其中一个步骤中出现有关 DataTable 的错误 在我开始使用测试运行程序并更改周围的一些内容之前 数据表工作正常并正确转换该步骤的参数 但我就是无法
  • 是否有最新的 Facebook Java SDK? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 好像没找到最近更新的 如果没有 是否有一个好的 Java 库来执行与 Facebook 的 API 交
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • MongoDB java 驱动程序 3.0 在身份验证时无法捕获异常

    我超级卡住o 0 在尝试通过 Java 驱动程序进行身份验证时 存在捕获异常的问题 正如你可能会看到的Throwable类不工作 private MongoClient mongoClient private MongoDatabase m
  • 配置jmxremote时无法正常停止tomcat

    我添加了一个jmxremotecatalina bat中的配置 set JAVA OPTS Dcom sun management jmxremote port 9004 Dcom sun management jmxremote ssl
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • 为什么 TypeScript 混合了模块和原型模式?

    我正在查看此页面上 TypeScript 生成的 JS 代码 http www typescriptlang org Playground http www typescriptlang org Playground 基本上 要创建一个Gr
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • 如何将库添加到 LIBGDX 项目的依赖项 gradle

    一切都在问题中 我已经尝试了在 SO 和其他网站中找到的所有答案 但没有运气 这就是我迄今为止尝试过的 adding compile fileTree dir lib include jar 到我的 build gradle adding
  • 在 Freemarker 模板中检查 Spring 安全角色和记录的用户名

    有谁知道 freemarker 标签来检查 freemarker 文件中的 spring 安全角色和用户名 我从网络上的几个资源中发现以下代码将打印登录的用户名 但它没有打印用户名 而是打印 登录为
  • CXF:通过 SOAP 发送对象时如何排除某些属性?

    我使用 Apache CXF 2 4 2 当我将数据库中的某个对象返回给用户时 我想排除一些属性 例如密码 我怎样才能做到这一点无需创建临时的班级 有这方面的注释吗 根据 tomasz nurkiewicz 评论我应该使用 XmlTrans
  • 如何清理 Runtime.exec() 中使用的用户输入?

    我需要通过命令行调用自定义脚本 这些脚本需要很少的参数并在 Linux 机器上调用 当前版本容易出现各种shell注入 如何清理用户给出的参数 参数包括登录名和路径 Unix 或 Windows 路径 用户应该能够输入任何可能的路径 该路径
  • Java 中的微分方程

    我正在尝试用java创建一个简单的SIR流行病模型模拟程序 基本上 SIR 由三个微分方程组定义 S t l t S t I t l t S t g t I t R t g t I t S 易感人群 I 感染人群 R 康复人群 l t c
  • 你能快速告诉我这个伪代码是否有意义吗?

    我相信我的代码现在是万无一失的 我现在将写出伪代码 但我确实有一个问题 为什么 DRJava 要求我返回 if 语句之外的内容 正如你所看到的 我为 ex 写了 return 1 只是因为它问了 但是它永远不会返回该值 谁可以给我解释一下这
  • 如何使用 Jest 从 ElasticSearch 获取索引列表

    我正在尝试使用 Jest 检索索引列表 但我只得到 Stats statistics new Stats Builder build result client execute statistics 如何从结果中检索索引列表 除了统计之外

随机推荐

  • 使用正则表达式拆分 CamelCase

    我有这段代码可以通过正则表达式拆分 CamelCase Regex Replace input lt a z A Z 1 RegexOptions Compiled Trim 然而 它没有正确地分割它 ShowXYZColours 它产生S
  • 权限被拒绝 - React Native 中的地理定位

    我一直在使用 React Native 让自定义位置工作并设置 NSLocationWhenInUseUsageDescription 键 在ios模拟器上运行时 报错如下 code 2 message Unable to retrieve
  • 如何在android中获取手机的smsc号码?

    我正在尝试在android中以编程方式获取手机的短信中心号码 那可能吗 我尝试过搜索 但没有找到具体的结果 拨打这个号码 4 6 3 6 转到电话信息 在底部您将看到 SMSC 字段 按刷新即可
  • Nhibernate 查询具有包含值的字典属性的项目

    我需要一种方法在 Nhibernate 中查询具有包含值的字典属性的项目 Assume public class Item public virtual IDictionary
  • 如何使用 Selenium 在测试之间存储值

    Selenium 能够临时存储数据项 然后在后续测试中检索它们 例如 storeText id ctl00 ContentPlaceHolder1 FormView1 someValue 当需要跨测试边界结转值时 这在单个测试中以及同一测试
  • 读取语句输入时无法识别“*”和“/”

    我开始学习 Fortran 我正在做一个小案例测试程序 其中用户输入两个实数并选择算术运算符 从 当用户选择 时出现以下错误 F6502 read
  • 将 python 与更快的语言混合以在 GAE 中进行优化

    我是 Python 和 GAE 领域的新手 我有一个问题 对于 Python 通常的方法是仅在需要时优化代码 修复更紧急的瓶颈 实现这一目标的方法之一是用 C 重写程序最关键的部分 通过使用 GAE 我们会永远失去这种可能性吗 自从谷歌的G
  • C 结构中的灵活数组成员

    引用 C std 第 6 7 2 1 节 struct s int n double d 这是一个有效的结构声明 我正在寻找这种语法的一些实际用途 准确地说 这个结构与将 double 作为第二个元素相比有何不同 或者这是 你可以用多种方式
  • JAXB-WS - 使用 @WebMethod 强制字段

    我有一个 WebMethod 调用 WebMethod public int cancelCampaign String campaignId String reason 我想将 CampaignId 字段标记为必填字段 不知道该怎么做 我
  • 如何使用 ssh 导出 mysql 数据库?

    我可以在 ssh 上使用哪些命令来使用 SSH 导出 下载 mysql 数据库 To 使用 SSH 导出 mysql 转储 执行以下命令 mysqldump u username p dbname gt db dump sql userna
  • 为什么 __init__.py 没有被调用?

    我使用的是 Python 2 7 并有以下文件 init py aoeu py init py有以下内容 aoeu aoeuaoeu aoeuaoeuaoeu 所以我希望当Python尝试加载时运行aoeu py会出错 init py 但事
  • 使用 Angular2 将 HTML 从服务器插入 DOM(Angular2 中的常规 DOM 操作)[重复]

    这个问题在这里已经有答案了 我想将从服务器检索到的一些 HTML 插入到 angular2 中的 DOM 元素中 我似乎无法找出最好 正确的方法来做到这一点 我不能只是将 my data 放入模板中 因为 Angular 2 会自动转义 H
  • 本地作用域与 __init__.py 内的相对导入

    我注意到了asyncio init py从Python 3 6开始使用以下构造 from base events import all base events all The base events符号没有在源代码中的任何地方导入 但模块仍
  • HABTM 重复记录

    我有2个型号Game Theme并且它们有一个 has and belongs to many 关联 我尝试了很多解决方案来防止重复记录games themes表 但没有解决方案有效 问题是 games themes是一个表 但它不是一个模
  • 创建项目时 XCode 6.0.1 错误:文件“排除”不存在

    当我在 XCode 6 0 1 中创建新项目时 收到以下错误消息 文件 排除 不存在 它似乎只影响文件的版本控制 即生成的存根文件在项目创建后不会提交到 github 中 什么会导致这个问题 对我来说 这个问题是因为我之前创建了一个同名的项
  • 如何使 Backbones toJSON 函数包含子模型和集合?

    我有一些模型不仅包含基本数据属性 而且可能具有一个或两个包含另一个模型对象的属性 一直没问题 但现在我想打电话 myRootModel toJSON 我注意到它不会在我尝试调用 toJSON 的模型中的其他模型上调用 toJSON 有没有办
  • 在没有 livereload 的情况下构建时,文件路径中缺少“android_asset/www/”

    我正在开发一个离子应用程序 ionic v1 7 13 cordova v5 4 1 当我跑步时 ionic run android l 一切正常 我的所有项目文件都已正确加载 当我尝试在没有 livereload 的情况下运行时 就会出现
  • 如何在 Blazor WebAssembly 中使用 SQLite?

    对于 Blazor WebAssembly 我提出了使用 SQLite 的想法 这个问题提到这是不可能的 是否可以在 Blazor WebAssembly 中使用 SQLite 如果可以 如何使用 从 NET 6 开始 您可以在 Blazo
  • UIColor 与 IB 颜色(颜色配置文件问题)

    我正在使用 XCode 8 2 1 我刚刚了解了颜色配置文件 并且 RGB 值不是通用的 但仍然无法理解如何在代码中使其正确 在 Interface Builder 中 我为标签选择了预定义的 深灰色 通用 RGB 配置文件中的值为 85
  • 如何获取父基类对象 super.getClass()

    我对 Java 有一点问题 作为一名 C 程序员 我有2个相关课程 public class Patient public class PatientPersistent extends Patient public void foo Sy