前端传递的多种对象,后端使用泛型接收,怎么动态转成实际的对象
时间: 2024-02-24 09:59:37 浏览: 59
在前端传递多种对象到后端时,可以使用类型标识符来标识不同的对象类型,并在后端使用泛型接收这些对象。在后端,可以根据类型标识符动态转换成实际的对象。具体实现可以参考以下步骤:
1. 在前端传递对象时,为每种对象类型添加一个类型标识符,比如 "type": "user" 表示传递的是用户对象, "type": "product" 表示传递的是产品对象等等。
2. 在后端定义一个泛型接口,接口中包含一个类型参数 T,表示需要接收的对象类型。
```java
public interface ObjectHandler<T> {
void handle(T obj);
}
```
3. 在后端根据类型标识符动态转换成实际的对象,并调用接口中的 handle 方法处理对象。
```java
public void handleObject(JSONObject obj, ObjectHandler<?> handler) {
String type = obj.getString("type");
switch (type) {
case "user":
handler.handle(obj.toJavaObject(User.class));
break;
case "product":
handler.handle(obj.toJavaObject(Product.class));
break;
// 处理其他类型的对象
default:
throw new IllegalArgumentException("Unknown object type: " + type);
}
}
```
这样,在后端就可以处理不同类型的对象了,而且可以通过添加新的类型标识符来支持更多类型的对象。