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

如何忽略超类?

赫连实
2023-03-14
问题内容

我正在尝试为java.util.loggingapi
编写Web服务。因此,我编写了一个MyLogRecord类,该类继承自LogRecord。我用JAX-
B注释对此类进行了注释,包括,@XmlAccessorType(XmlAccessType.NONE)因此它将忽略未注释的字段和属性。当我启动tomcat时,出现错误,java.util.logging.Level并且其他java.util.logging类没有默认的构造函数,但是没有带注释的方法对Level类或任何其他java.util.logging类进行任何引用。这些由父类引用。

我的子类具有需要定义的所有内容。如何使JAX-B完全忽略父类?

更新:我在此找到,建议修改父类。这显然是不可能的,因为我正在扩展java.util课程。有没有不修改超类就可以做到这一点的方法?

Update2:我在java.net上发现了一个类似问题的线程。该线程导致了一个增强请求,该请求被标记为另一个问题的重复,从而导致了@XmlTransient注释。对这些错误报告的评论使我相信在当前规范中这是不可能的。


问题答案:

您需要标记父类@XmlTransient。由于父类位于JRE中,并且您无法对其进行修改,因此需要备用机制。

EclipseLink JAXB(MOXy)实现提供了一种将元数据表示为XML的方式,您可以使用:

http://wiki.eclipse.org/EclipseLink/Examples/MOXy/EclipseLink-
OXM.XML

您可以使用批注指定一些元数据,其余的作为XML。您的文档如下所示:

<java-types>

    <java-type name="java.util.logging.LogRecord" xml-transient="true"/>

</java-types>


 类似资料:
  • 问题内容: 我想序列化一个不受我控制的POJO类,但是想避免序列化任何来自超类而不是最终类的属性。例: 您可以从示例中猜测到,该类是由JOOQ生成的,并且是从复杂的基类UpdatableRecordImpl继承的,该基类还具有一些类似于bean属性的方法,这会在序列化过程中引起问题。另外,我有几个类似的类,因此最好避免对所有生成的POJO复制相同的解决方案。 到目前为止,我已经找到以下可能的解决方

  • > 使用mixin技术忽略来自超类的特定字段,如下所示:我如何告诉jackson忽略一个我无法控制源代码的属性? 这样做的问题是,如果基类发生了变化(例如,其中出现了一个新的getAnything()方法),它可能会破坏我的实现。 实现一个自定义序列化程序并在那里处理问题。这在我看来有点矫枉过正。 但是,从纯设计的角度来看,最好的方法是告诉jackson我只想序列化最终类的属性,而忽略所有继承的属

  • 问题内容: 我一直在使用带有詹金斯的PHP_CodeSniffer,我的build.xml是为phpcs配置的,如下所示 我想忽略以下警告 如何忽略行长警告? 问题答案: 您可以创建自己的标准。Zend一个非常简单(使用PEAR安装后,在我的Debian安装中)。基于它创建另一个,但是忽略行长位: 并设置。 (可选)如果您只想在触发之前增加字符数,请重新定义规则:

  • 问题内容: 背景 大约30分钟前,我才开始使用grunt。所以,请忍受我。 但我有一个相当简单的脚本,它将查看我的js,然后将其全部压缩到一个文件中。 码 题 我的main.min.js每次都包含在编译中。这意味着我的min.js正在获得2x,4x,8x,16x等。围绕此的最佳方法是添加异常并忽略吗? 问题答案: 在src数组的 末尾 ,添加 这将排除它。!将其变成排除对象。 http://gru

  • 我正在测试Quarkus应用程序,我想忽略一些测试。 测试类用,以及带有 我试图使用注释,但它不起作用,被忽略的测试无论如何都会执行。 这是代码: 有人知道我怎么才能做到这一点吗?

  • 问题内容: 我有一些扩展的模型类:它们定义用于包装Map的get和put方法的getter和setter。我正在尝试使用Jackson(带有RESTEasy)序列化这些类的实例,但是Jackson拒绝注意我的getter(使用注释)。而是仅序列化支持映射的键- 值对。我尝试使用禁用所有方法和字段的自动检测功能,但这并没有任何改变。有没有办法防止Jackson序列化Map,还是必须创建不扩展的新模型