🏡环境

SpringBoot + lombok

📋遇到需求

大概意思

给出一个参数通过URI接收一个对象test(可能是两种类的对象)和一个type(判断test类型)

🌌假设:

如果type为0,test为TestTest对象,

如果type为1,test为TestTest2对象

🔬实现过程:

TestTest.class和TestTest2.class

@Data
@Accessors(chain = true)
public class TestTest {
    String abc;
    String aaa;

    TestTest2 test2;
}

@Data
@Accessors(chain = true)
public class TestTest2 {
    String ddd;
    String ccc;
}

Controler

@RestController
@RequestMapping("/api/v1")
public class TestController {

    private final Logger log = LoggerFactory.getLogger(TestController.class);

    @PostMapping("/hello")
    public String helloWorld(String type,
                             @RequestBody Object test) throws IOException {

        log.info("test {}", test.toString());
        if (type.equals("0")) {
            TestTest testTest = new TestTest();
            ObjectMapper objectMapper = new ObjectMapper();
            String testString = objectMapper.writeValueAsString(test);
            testTest = objectMapper.readValue(testString, TestTest.class);
            return testTest.toString();
        }else if (type.equals("1")){
            TestTest2 testTest2 = new TestTest2();
            ObjectMapper objectMapper = new ObjectMapper();
            String testString = objectMapper.writeValueAsString(test);
            testTest2 = objectMapper.readValue(testString, TestTest2.class);
            return testTest2toString();
        }
        return "error";
    }
}

results matching ""

    No results matching ""