变长参数是jdk1.5的新特性,可以减少方法的数量。
1】状态查询场景
queryByStatus方法可以查询一个状态也可以查询多个状态,一个状态使用=查询,多个状态使用in查询。
使用变长参数之前的方法定义和使用如下,一个状态和多个状态的使用方式不同,一个状态的使用方式简洁和明确,多个状态的使用方式繁琐。
如果将一个状态也按多个状态的方式处理,会使得一个状态也变得繁琐了。
public List<ReportLog> queryByStatus(Long jobId, ReportLogStatus status)
//使用方式 reportLogDao.queryByStatus(jobId, ReportLogStatus.FAILED)
public List<ReportLog> queryByStatus(Long jobId, ReportLogStatus[] statuss)
/*
使用方式
ReportLogStatus[] statuss=new ReportLogStatus[2];
statuss[0]=ReportLogStatus.QUEUED;
statuss[1]=ReportLogStatus.PROCESSING;
return reportLogDao.queryByStatus(jobId, statuss);
*/
使用变长参数后的情况
1)减少了方法数量
2)多个状态的使用方式也变得简洁和明确了
3)还保留了之前的数组使用方式
public List<ReportLog> queryByStatus(Long jobId, ReportLogStatus... statuss)
//单状态使用方式
reportLogDao.queryByStatus(jobId, ReportLogStatus.FAILED);
//多状态使用方式
reportLogDao.queryByStatus(jobId, ReportLogStatus.QUEUED, ReportLogStatus.PROCESSING);
//数组使用方式
ReportLogStatus[] statuss=。。。。
reportLogDao.queryByStatus(jobId, statuss);
2】log中的参数
待续。。。