From af0e0a110e7187bf008655f7510199a0c0b25ec4 Mon Sep 17 00:00:00 2001 From: Nymph2333 <498092988@qq.com> Date: 星期一, 10 四月 2023 14:27:40 +0800 Subject: [PATCH] newInstance() 已弃用,使用clazz.getDeclaredConstructor().newInstance() This method propagates any exception thrown by the nullary constructor, including a checked exception. Use of this method effectively bypasses the compile-time exception checking that would otherwise be performed by the compiler. The Constructor.newInstance method avoids this problem by wrapping any exception thrown by the constructor in a (checked) InvocationTargetException. The call clazz.newInstance() can be replaced by clazz.getDeclaredConstructor().newInstance() The latter sequence of calls is inferred to be able to throw the additional exception types InvocationTargetException and NoSuchMethodException. Both of these exception types are subclasses of ReflectiveOperationException. --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java | 50 +++++++++++++++++++++++++++++--------------------- 1 files changed, 29 insertions(+), 21 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java index 2ae0c54..c55f974 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java @@ -9,13 +9,15 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; @@ -38,74 +40,80 @@ @ApiOperation("获取用户列表") @GetMapping("/list") - public AjaxResult userList() + public R<List<UserEntity>> userList() { List<UserEntity> userList = new ArrayList<UserEntity>(users.values()); - return AjaxResult.success(userList); + return R.ok(userList); } @ApiOperation("获取用户详细") - @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path") + @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class) @GetMapping("/{userId}") - public AjaxResult getUser(@PathVariable Integer userId) + public R<UserEntity> getUser(@PathVariable Integer userId) { if (!users.isEmpty() && users.containsKey(userId)) { - return AjaxResult.success(users.get(userId)); + return R.ok(users.get(userId)); } else { - return AjaxResult.error("用户不存在"); + return R.fail("用户不存在"); } } @ApiOperation("新增用户") - @ApiImplicitParam(name = "userEntity", value = "新增用户信息", dataType = "UserEntity") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer", dataTypeClass = Integer.class), + @ApiImplicitParam(name = "username", value = "用户名称", dataType = "String", dataTypeClass = String.class), + @ApiImplicitParam(name = "password", value = "用户密码", dataType = "String", dataTypeClass = String.class), + @ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String", dataTypeClass = String.class) + }) @PostMapping("/save") - public AjaxResult save(UserEntity user) + public R<String> save(UserEntity user) { if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) { - return AjaxResult.error("用户ID不能为空"); + return R.fail("用户ID不能为空"); } - return AjaxResult.success(users.put(user.getUserId(), user)); + users.put(user.getUserId(), user); + return R.ok(); } @ApiOperation("更新用户") - @ApiImplicitParam(name = "userEntity", value = "新增用户信息", dataType = "UserEntity") @PutMapping("/update") - public AjaxResult update(UserEntity user) + public R<String> update(@RequestBody UserEntity user) { if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) { - return AjaxResult.error("用户ID不能为空"); + return R.fail("用户ID不能为空"); } if (users.isEmpty() || !users.containsKey(user.getUserId())) { - return AjaxResult.error("用户不存在"); + return R.fail("用户不存在"); } users.remove(user.getUserId()); - return AjaxResult.success(users.put(user.getUserId(), user)); + users.put(user.getUserId(), user); + return R.ok(); } @ApiOperation("删除用户信息") - @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path") + @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class) @DeleteMapping("/{userId}") - public AjaxResult delete(@PathVariable Integer userId) + public R<String> delete(@PathVariable Integer userId) { if (!users.isEmpty() && users.containsKey(userId)) { users.remove(userId); - return AjaxResult.success(); + return R.ok(); } else { - return AjaxResult.error("用户不存在"); + return R.fail("用户不存在"); } } } -@ApiModel("用户实体") +@ApiModel(value = "UserEntity", description = "用户实体") class UserEntity { @ApiModelProperty("用户ID") -- Gitblit v1.9.2