为了账号安全,请及时绑定邮箱和手机立即绑定

关于java方法参数的困惑

关于java方法参数的困惑

回首忆惘然 2019-05-22 17:56:31
/**获取角色对应权限*/@RequestMapping("/listByRoleId")publicCommonResultlistByRoleId(@ValidMenuParam.ListByRoleIdParamparam){returnmenuService.listByRoleId(param);}@DatapublicstaticclassListByRoleIdParam{@NotNull(message="不能为空")privateIntegerroleId;}@DatapublicstaticclassListByRoleIdVo{privateIntegermenuId;privateStringname;//名称privateIntegerpid;//父id}我现在项目里面使用上面这种形式来写代码.每个方法的参数定义成一个类.方法的返回值也定义成一个类.这样写主要是想使用valid来做参数校验,将参数封装成一个对象也方便使用反射来调用方法.这样就会导致项目里面有很多这种参数和返回值的类.请问这种写法出了类定义的多点,还有什么不好的地方?会影响性能吗?
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

谢邀。有很多这种参数和返回值的类,其实即使你不做校验用,也应该这么写,参数封装成对象理所当然,只不过很多类有业务重复的情况下可以抽象、继承的方式来做。因为业务需求问题,校验多种多样,代码这种bean变多,其实也没什么影响,只想便于维护就好;
                            
查看完整回答
反对 回复 2019-05-22
?
Helenr

TA贡献1780条经验 获得超4个赞

显然是太灵话,修改逻辑要重新定义类,类的序列化缓存也要考虑升级时的版本兼容的问题.要看有多少,几十个的话不用太在意.好处是有强类型验证.
如果很多的话建议还是用抽象的Map来存参数.这样可以把参数与逻辑剥离.
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 387 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信