使用 Gson 序列化匿名类

2024-01-18

有什么原因无法将匿名类序列化为 Json 吗?

Example:

public class AnonymousTest
{
    private Gson gson = new Gson();

    public void goWild()
    {
        this.callBack(new Result()
        {
            public void loginResult(Result loginAttempt)
            {
                // Output null
                System.out.println(this.gson.toJson(result));   
            }
        });
    }

    public void callBack(Result result)
    {
        // Output null
        System.out.println(this.gson.toJson(result));
        result.loginResult(result);
    }

    public static void main(String[] args) 
    {
        new AnonymousTest().goWild();
    }
}

刚刚开始使用它:)


用户指南中对此进行了解释:https://sites.google.com/site/gson/gson-user-guide https://sites.google.com/site/gson/gson-user-guide

Gson 还可以反序列化静态嵌套类。然而,Gson 不能 自动反序列化纯内部类,因为它们无参数 构造函数还需要对包含对象的引用,即 反序列化时不可用。

您可以通过使类成为非匿名和静态来修复代码:

static class MyResult extends Result {
    public void loginResult(Result loginAttempt) {
        System.out.println(new Gson().toJson(result));   
    }
}
...
this.callBack(new MyResult());

请注意,您不能使用外部类中的 gson 字段,您必须创建一个新字段或从其他地方获取它。

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

使用 Gson 序列化匿名类 的相关文章

  • 在 Java Swing 中检测 JScrollPane 上的 mouseClick 事件

    如果我有这样的东西 我可以使用布尔标志 performAdjustment 控制自动滚动 static boolean performAdjustment true JTextArea textArea new JTextArea JScr
  • 如何在java swing中的每个页面中打印带有页脚的整个JPanel

    好吧 这可能很简单 但想不通 我有一个包含 JTable 的 JPanel JTable 包含很少的行 有时更多 因为我推入其中的表模型取决于数据库 但是 我不使用任何包含 JTable 的 JScolpane 因此 当 JTable 包含
  • 使用选项卡式活动中的捆绑包将值从活动传递到片段

    我是一个java文盲 但仍在尝试开发一个供我个人使用的应用程序 我从 android studio 的 Tabbed Activity 开始 除了 MainActivity 中的一个片段和一个包之外 大部分没有改变 这是我的代码 主要活动
  • 如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别)

    我有那些具体的要求 需要能够登录FATAL level 需要使用SLF4J 需要使用Log4j2 现在 这是我的执行 final Logger logger LoggerFactory getLogger HelloWorld class
  • Spring webflow 应用程序:HTTP 302 暂时移动

    我的 java 应用程序中的每个请求都会生成另外 2 个带有 HTTP 302 错误的请求 例如 如果请求查看名为板 html 这个请求是从首页 html 我收到按以下顺序生成的 3 个请求 POST home html 302 Moved
  • 使用 Java 编程式 HTML 文档生成

    有谁知道如何在 Java 中以编程方式生成 HTMLDocument 对象 而不需要在外部生成字符串 然后使用 HTMLEditorKit read 来解析它 我问的两个原因 首先 我的 HTML 生成例程需要非常快 并且我认为将字符串解析
  • 有效地查找正则表达式的所有重叠匹配项

    这是后续与 java 正则表达式匹配的所有重叠子字符串 https stackoverflow com q 11303309 244526 有没有办法让这段代码更快 public static void allMatches String
  • JUnit Eclipse 显示 System.out.print() 的

    我正在使用 JUnit 3 和 Eclipse 3 4 当我运行 JUnit 测试用例时 一切正常并且测试完美完成 唯一的事情是我想查看我正在运行的类的输出 所有类都具有一些输出值的基本 System out print 因此 当我运行测试
  • 如何正确配置Tomcat SSLHostConfig?

    我正在按照本教程在 tomcat 中启用 ssl https medium com raupach how to install lets encrypt with tomcat 3db8a469e3d2 https medium com
  • 我们可以在三元运算符(Java)中使用命令吗?

    这是一个工作代码 String a first String b second String object System out println object null a b 但它不是 String a first String b se
  • 如何使用 Java 原生接口从 Java 调用 Go 函数?

    可以通过以下方式调用 C 方法JNA https en wikipedia org wiki Java Native AccessJava 中的接口 如何使用 Go 实现相同的功能 package main import fmt impor
  • 在 Mac 上使用 JRE 打开 jar 文件

    我有一个 jar 文件 旨在通过命令行运行 我不打算在运行应用程序的机器上进行任何java开发 我的思考过程是 因此我应该只需要JRE而不是JDK 此外 JDK 大约是 JRE 的 4 倍 我不想下载它 在 Mac 上安装 JRE 时 它不
  • Java G1 GC 处理引用对象运行缓慢

    我已经在 J ava 上运行了计数器 它24小时工作 每秒点击通过100次左右 白天 GC 处理时间从 20 60 毫秒缓慢上升到 10000 60000 毫秒 然后下降到 20 60 毫秒 这种模式不时地重复 从 GC 日志中我发现 GC
  • C++ 中可以使用匿名类作为返回类型吗?

    有没有办法在 C 中使用匿名类作为返回类型 我用谷歌搜索这可能有效 struct Test fun 但是这段代码无法编译 错误信息是 新类型不能在返回类型中定义 其实代码没有任何意义 我只是想弄清楚匿名类是否可以用作C 中的返回类型 这是我
  • Java中的DRY原则[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我一直在读关于DRY https en wikipedia org wiki Don 27t repeat yourself原则 虽然看起来
  • 字节码和位码有什么区别[重复]

    这个问题在这里已经有答案了 可能的重复 LLVM 和 java 字节码有什么区别 https stackoverflow com questions 454720 what are the differences between llvm
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • Java泛型类型

    当我有一个界面时 public interface Foo
  • 日期时间解析异常

    解析日期时 我的代码中不断出现异常错误 日期看起来像这样 Wed May 21 00 00 00 EDT 2008 这是尝试读取它的代码 DateTimeFormatter formatter DateTimeFormatter ofPat
  • 如何使用 Spring AOP 建议静态方法?

    在执行类的静态方法之前和之后需要完成一些日志记录 我尝试使用 Spring AOP 来实现这一点 但它不起作用 而对于正常方法来说它起作用 请帮助我理解如何实现这一点 如果可以使用注释来完成 那就太好了 也许您应该在使用 Spring AO

随机推荐

  • 如何在 JavaScript 中运行对象的 onEvent 方法?

    我刚刚开始使用 javascript 但我遗漏了一些我所知道的重要内容 我希望你能帮助我填补这个空白 因此 我尝试运行的脚本应该计算文本字段中的字符数 并更新一个段落以告诉用户他们输入了多少个字符 我有一个名为 charCounter 的对
  • R Plotly 叠加条形图

    简而言之问题 使用R和Plotly包 我可以创建一个覆盖条形图 其中使用 x 轴上的相同位置显示 2 个系列吗 经过相当多的谷歌搜索后 我找不到答案 例如这个可视化 使用 Plotly 和 R 创建分组 非重叠 堆叠条形图的代码 month
  • Horizo​​ntal Pod Autoscaler 中 API 版本 v2beta1 和 v2beta2 之间的区别?

    Kubernetes Horizo ntal Pod Autoscaler 演练https kubernetes io docs tasks run application horizo ntal pod autoscale walkthr
  • LINQ to SQL - 在保存之前格式化字符串?

    我正在尝试将现有 非 LINQ to SQL 类转换为 LINQ to SQL 实体类 该实体类具有现有 db 列 属性 例如 public string MyString get return myString set myString
  • 如何选择每个卷积层的滤波器数量? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 构建卷积神经网络时 如何确定每个卷积层使用的滤波器数量 我知道关于过滤器的数量没有硬性规定 但是根据您的经验 您读过的论文等 是否对所
  • 为什么 EAX 中的高 16 位不能通过名称访问(如 AX、AH 和 AL)? [复制]

    这个问题在这里已经有答案了 为什么没有一个特定的寄存器来访问寄存器的其他部分 16 32 Like ah or al访问8位部分ax登记 我们的想法是将寄存器扩展到 32 位 而不是创建具有两倍数量的 16 或 8 位寄存器的机器 因为这些
  • 动态设置ContentProvider的权限

    也许标题有点误导 我的问题是我有一个 Android 库项目 该项目在两个标准 Android 项目之间共享 一个用于应用程序的免费版本 另一个用于付费版本 该库当前拥有 ContentProvider 的代码 包括一个合约类 其中包含多个
  • 有没有办法从对象中删除未知事件侦听器?

    我想要一个可重用的按钮 可以为由外部源确定的许多不同回调之一注册 当设置新的回调时 我想删除旧的 我还希望能够随时从外部清除回调 public function registerButtonCallback function Functio
  • luceneMatchVersion“LUCENE_36”无效

    我正在尝试将 Solr 3 6 2 集成到我的项目中 我使用 Maven 和 Tomcat 来运行这些东西 当我使用 HttpSolrServer 时一切都很好 但是当我更改为 EmbeddedSolrServer 时 它会出现这样的错误
  • file:/// 到 http:// 通过 IFrame 进行通信

    也许你们中的一些人可能遇到了我遇到的同样的问题 假设您的计算机上有一个文件 file c test html 该文件中有一个 IFrame 您需要指示 IFrame 内容是否已加载 基本上 我们这里有 1 无法从 file 访问位置 hre
  • A:边缘焦点解决方法

    我目前正在使用伪选择器 focus within in chrome 但是根据caniuse com https caniuse com feat css focus within它在 Edge 和 IE 中不可用 我找到了一个巧妙的解决方
  • 亚马逊 DynamoDB 和 AngularJS

    因此 我创建了一个 AWS dynamoDB 表 数据库 并准备使用 AngularJS 获取该数据 我如何使用 AngularJS 做到这一点 我需要在亚马逊设置其他服务吗 或者我可以直接访问我的数据库吗 我无法直接找到与 DynamoD
  • SpringBoot 2.0.2.RELEASE 中的 BCryptPasswordEncoder 定义

    我有一个基本的 Spring Boot 应用程序 使用 Spring Initializr JPA 嵌入式 Tomcat Thymeleaf 模板引擎 并打包为可执行 JAR 文件 我定义了这个配置文件 Configuration Enab
  • 使用 glDrawArrays 绘制交错的 VBO

    我目前正在使用 glDrawElements 使用多个 VBO 顶点 颜色 纹理和索引 进行渲染 我发现很少有顶点是共享的 所以我想切换到 glDrawArrays 和单个交错的 VBO 我一直无法找到一个清晰的例子 1 创建一个交错的 V
  • 如何以编程方式确定该类是案例类还是简单类?

    如何以编程方式确定给定的类是案例类还是简单类 使用新的 Scala 反射 API scala gt class B v Int defined class B scala gt case class A v Int defined clas
  • 透明跳脸?

    我一直在开发一个在 Three js 库之上运行的 WebGL 项目 我正在渲染几个半透明网格 我注意到根据倾斜相机的角度 顶部会出现不同的对象 为了说明这个问题 我使用三个半透明立方体做了一个快速演示 当您将图像旋转到垂直于屏幕的方向时
  • 如何在 Android 上使用 Jackson 将 JSON 数组解析为不同的对象?

    我正在尝试使用 Android 上的 Jackson 将如下所示的 JSON 解析为对象 注意 我无法控制 JSON 格式 该格式来自 Yammer references type user id 12345678 name Wex typ
  • 在 gitlab 中存储 API 令牌的安全方法

    我正在研究这个小terraform使用的项目gcp 谷歌云平台 token json其中包含创建资源的安全凭据 Terraform 文件由 Gitlab CI CD 执行 我担心的是 这个token json由其中之一使用terraform
  • 与 CVS 存储库同步时,Eclipse 可以忽略 .cvsignore 文件吗?

    我正在一个团队环境中工作 其中不同开发人员的 IDE 混合在一起 有些使用 Eclipse 有些使用 NetBeans 有些使用 IntelliJ 等 代码项目都是围绕 Maven 构建的 所以没有人关心你使用哪个 IDE 只要它可以与 M
  • 使用 Gson 序列化匿名类

    有什么原因无法将匿名类序列化为 Json 吗 Example public class AnonymousTest private Gson gson new Gson public void goWild this callBack ne