java类中方法中的参数过多如何处理

nihao6154 2014-04-24 02:47:10
这是方法

@Override
public List<ProjectInfo> getProjectListByQueryEx(ProjectInfo queryPrjInfo,
List<ExtendPropertyInfo> queryExtendPropertyList, Boolean bSaveState, Date queryStartTime,
Date queryEndTime, String currentUserID, int startIndex, int maxRecords) throws Exception
{
List<ProjectInfo> lstQueryPrj = new ArrayList<ProjectInfo>(); // 查询工程列表
List<Project> lstPrj = this.queryProjectListByEx(queryPrjInfo, queryExtendPropertyList, bSaveState,
queryStartTime, queryEndTime, ObjectCheckRelationTypes.checkAll, currentUserID, startIndex, maxRecords);

// 转换成info对象
for (Project prj : lstPrj)
{
ProjectInfo projectInfo = prj.toPojo();
projectInfo.setProjectState(prj.getIsSaveProject());
// 添加到列表
lstQueryPrj.add(projectInfo);
}

return lstQueryPrj;
}



方法里有8个参数,因为项目规范有规定方法中的参数不能超过7个,现在有8个了,各位大侠,如何处理?请求详细方法
...全文
2868 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Map 不可取啊!难于维护的东西。 Javabean倒是可行,但是太麻烦了…… 至于前面说的"拆分成几个方法"我全都点x了,那些"只干一件事"的方法当然可以把参数写的很少 但是总要有一个方法来统筹协调,毕竟业务不可能"只干一件事",能删的参数早就删了,就是因为不能删才会方法参数过多的! 如果是Java8就好了哎,可以用函数式的方式隐式传参,就不用考虑那么多麻烦了
卖水果的net 2014-04-25
  • 打赏
  • 举报
回复
拼接成一个,到了 action 页再去把拆成 8 个。
nihao6154 2014-04-25
  • 打赏
  • 举报
回复
13楼的大侠能举个用map集合的例子不
nihao6154 2014-04-25
  • 打赏
  • 举报
回复
能举个例子不,麻烦你了
机器学习之禅 2014-04-24
  • 打赏
  • 举报
回复
都放到一个map里面不就好了
JAVA大大菜鸟 2014-04-24
  • 打赏
  • 举报
回复
将参数放到一个map里直接传map到后台
S117 2014-04-24
  • 打赏
  • 举报
回复
参数过多就用javaben呀! 这样还可以为一些参数指定默认值!
Legend-Hu 2014-04-24
  • 打赏
  • 举报
回复
或者简单点你直接用一个map把参数放进去就好了
Legend-Hu 2014-04-24
  • 打赏
  • 举报
回复
你将所有的参数都封装到一个类,然后传参就只用传一个类名,比如我调用一个方法List list=resource.GetAllMeeting(mm,page),我就把mm传过去,然后在里面直接就可以写mm.getmid这个参数了
Legend-Hu 2014-04-24
  • 打赏
  • 举报
回复

package com.chinaedu.dao;
public class MeetingModel {
	private int mid;
	public int getMid() {
		return mid;
	}
	public void setMid(int mid) {
		this.mid = mid;
	}	
}
这就把mid封装到了meetmodel这个类中

	MeetingModel mm=new MeetingModel();
        	public MeetingModel getMm() {
		return mm;
	}

	public void setMm(MeetingModel mm) {
		this.mm = mm;
	}
然后再调用mid时就是mm.getMid了

xiaoai900525 2014-04-24
  • 打赏
  • 举报
回复
把参数放到map里不会吗?
nihao6154 2014-04-24
  • 打赏
  • 举报
回复
如何封装?我还在实习呢,这是别人写的代码,只是现在这个参数问题不符号规范,需要我改正,能麻烦写个例子么,我实在想不出来,哎
sunbo624 2014-04-24
  • 打赏
  • 举报
回复
设计的问题 你是按照不同的字段进行查询吧 直接封装成一个对象就行
itzgs 2014-04-24
  • 打赏
  • 举报
回复
这个queryProjectListByEx方法里用到的参数是否紧密关联,如果不是,那么就多写两个方法把参数分离开来获取你需要的值。
Legend-Hu 2014-04-24
  • 打赏
  • 举报
回复
或者你把这些参数封装成一个bean!
小灯光环 2014-04-24
  • 打赏
  • 举报
回复
把你的参数都封装到一个Map集合里,只传一个Map。
tony4geek 2014-04-24
  • 打赏
  • 举报
回复
正常吧。或者你封装在一个里面。
Legend-Hu 2014-04-24
  • 打赏
  • 举报
回复
怎么写的,让一个方法带这么多参数,分开写不就好了嘛!多谢几个方法相互调用,参数就少了!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧