java - java中new对象的{}是什么?

标签 java

如何引用{}在Java中。它是一个新的对象、类、数据类型还是其他什么?

我正在执行一些 json 到对象转换的代码。它使用com.fasterxml.jackson.core.type.TypeReference 。我想了解什么是{} 。因为方法总是接受对象。当我这样做时new XXX()然后对象的创建就完成了。那么额外需要什么{}

try {
  return objectMapper.readValue(dbData, new TypeReference<List<MyClass>>() {});
} catch (IOException e) {
  LOGGER.error("Exception while de-serializing", e);
  return Collections.emptyList();
}

最佳答案

这是一个匿名类表达式:

return objectMapper.readValue(dbData, new TypeReference<List<MyClass>>() {});
// -----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

它创建一个扩展 TypeReference 的匿名类的新实例。 。 {}是一个空的类体。正如 Paul Lemarchand 在评论中所说,它在这里很有用,因为 TypeReferenceabstract类(否则,您可以只使用 new TypeReference<List<MyClass>>() 而不使用 {} )。正文可以为空白,因为虽然 TypeReferenceabstract ,它没有任何 abstract成员(member);如果有 abstract成员,您必须在匿名类的类主体中定义它们。

更多内容请参见 Java Anonymous Class Tutorial在 Oracle 的 Java 网站上。

关于java - java中new对象的{}是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56491563/

相关文章:

java - 使用父模块作为依赖项

Java:检查泛型是否为 int

java - JTextField 的闪烁颜色

java - 如何查看 IntelliJ 中的编译错误列表?

java - 为什么类不能扩展其中出现的静态嵌套类?

java - 使用字典顺序和按位算法顺序生成有限集的所有组合

java - 我可以根据变量而不是在 xml 中添加运行时按钮数量吗

java - 如何在 DROPBOX 中使用 MULTIPART 文件上传来上传文件

java - 4分钟消失在jvm

java - 如何在 java 中对 UDP 数据包进行 ip 欺骗/更改源地址/原始套接字编程?