小编See*_*rma的帖子

即使在 Java 中的类型擦除之后,JSON 如何映射到 List<>

我正在使用 JSON 将对象列表发送到 Spring 中的控制器。我的控制器方法是这样的:

@PostMapping("/fun")
public String fun(List<User> users){
    for(User user : users){
       System.out.println(user);
  }
  return "success";
}
Run Code Online (Sandbox Code Playgroud)

这是我的用户类:

public class User{
    String name;
    String password;
    int empID;

    // getter and setters
}
Run Code Online (Sandbox Code Playgroud)

这是我发送的 JSON:

[
   {
      "name":"some-name",
      "password":"password",
      "empID":2
   }
]
Run Code Online (Sandbox Code Playgroud)

我的问题是,JSON 如何知道这是用户列表,因为 Java 类型擦除使得无法知道列表包含哪种对象。因此,即使不知道对象,JSON 如何将自身映射到 User 类。

已编辑

我真正想做的是:

我有一堂课PayloadTester,就像这样

public class PayloadTester{
   public void test(List<String> list){
       // logic
   }
}
Run Code Online (Sandbox Code Playgroud)

从我的主要方法中,我使用反射 apis 来获取test(List<String> list)方法,并且从这个方法中它的参数是这样的,

Method method = tester.getClass().getMethod("test", List.class);
Parameter[] params = …
Run Code Online (Sandbox Code Playgroud)

java spring json jackson spring-boot

6
推荐指数
0
解决办法
88
查看次数

如何让 VSCode 在 Jars 中搜索文件

我最近从 Eclipse 迁移到 VSCode。我在 VSCode 中搜索文件(Java 文件)时遇到问题。当我使用Cmd+P在 VSCode 中搜索文件时,它会显示项目中存在的所有文件,除了我正在使用的 jar 中存在的文件。例如,我使用了很多 spring jar,但现在如果我搜索,FrameworkServlet它会显示No Result检查一下。 Eclipse 用于显示 jar 中的文件,但 vscode 不显示。另外,我安装了Java扩展的文件管理器。如何在 VSCode 中实现这个功能?

eclipse visual-studio-code

1
推荐指数
1
解决办法
1352
查看次数

标签 统计

eclipse ×1

jackson ×1

java ×1

json ×1

spring ×1

spring-boot ×1

visual-studio-code ×1