猿问

关于java方法参数的困惑

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

白板的微信

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

Helenr

显然是太灵话,修改逻辑要重新定义类,类的序列化缓存也要考虑升级时的版本兼容的问题.要看有多少,几十个的话不用太在意.好处是有强类型验证.如果很多的话建议还是用抽象的Map来存参数.这样可以把参数与逻辑剥离.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答