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

See*_*rma 6 java spring json jackson spring-boot

我正在使用 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 = method.getParameters();
// extracting param from this Parameter array.
Run Code Online (Sandbox Code Playgroud)

我想使用这个参数List<String>并创建一个函数/类获取输出为 java.lang.String。因为 Spring 也做了类似的事情,我们只传递参数,有效载荷映射到它们。我怎样才能做到这一点。