在 Java 中,当方法或构造函数参数前面有 @Json(name=“something”) 时,这意味着什么?

What does it mean in Java when a method or constructor parameter is preceded by @Json(name="something")?

提问人:Rikudou 提问时间:9/8/2023 最后编辑:Federico klez CullocaRikudou 更新时间:9/8/2023 访问量:42

问:

我遇到了一些我正在尝试分析的代码。有一个类的构造函数如下所示:

public Thing(@Json(name = "var1") String str, @Json(name = "var2") String str2) {
        this.instanceVar1 = str;
        this.instanceVar2 = str2;
}

我试过查找它,但我真的找不到任何可以回答以下问题的东西:

在 Java 中,当函数或构造函数参数前面有 时,这意味着什么?@Json(name="something")

这让我想起了表单数据如何在 HTML/JavaScript 中获取 name 属性。即便如此,像上面代码这样的片段意味着什么?上面的代码是否意味着某处有一台服务器,并且作为 JSON 数据发送到该服务器,并且该数据的目标是名为“var1”的某个端点?String str

或者,这是否意味着某些名为“var1”的服务器终结点实际上是将 的值发送到此构造函数的终结点?str

请帮我解决这个问题。

Java JSON 方法 参数 构造函数

评论

0赞 Jesper 9/8/2023
它被称为注释。它是某些工具(如 JSON 解析器)处理代码的信息。在这种情况下,它向 JSON 解析器指示哪些 JSON 值需要绑定到 的构造函数的哪些参数。Thing
1赞 arkascha 9/8/2023
这在 java 中称为“注解”。存在许多不同类型的此类注释,您甚至可以实现自己的注释。这个想法是影响编译过程。此特定注释可能(取决于该定义的实际导入位置)意味着此方法可用于为 json 对象属性创建值。您应该能够通过在注释文档上设置光标并从那里跳转到其源代码(实现)来拉出注释文档(具体方式取决于您使用的 IDE,对于 IntelliJ,它将是 CTRL-B)。

答: 暂无答案