我有一个解析对象的函数。但这个函数需要在两个服务中使用,并且参数具有相同的类名,但包名不同。我需要的是避免重复的代码。
假设函数是:
private HashMap<String, Integer> getPagination(PagingRequestType pagingRequestType) {
int pageSize = 200;
int pageNumber = 1;
if(pagingRequestType != null) {
if (pagingRequestType.getNumberOfRecordsPerPage() != 0) {
pageSize = pagingRequestType.getNumberOfRecordsPerPage();
}
if (pagingRequestType.getStartAtRecordNumber() != 0) {
pageNumber = pagingRequestType.getStartAtRecordNumber();
}
}
HashMap<String, Integer> result = new HashMap<>();
result.put("pageNumber", pageNumber);
result.put("pageSize", pageSize);
return result;
}
可能的函数调用:
- getPagination(new Abc.PagingRequestType());
- getPagination(new Xyz.PagingRequestType());
PagingRequestType
是两个不同包中自动生成的类。该功能需要实现一次并在两个服务中使用。
谢谢。
最佳答案
如果您可以修改 PagingRequestType
类,那么使用通用接口(interface)将是一个好主意:
class Abc.PagingRequestType implements PagingRequestType
class Xyz.PagingRequestType implements PagingRequestType
interface PagingRequestType {
getNumberOfRecordsPerPage();
getStartAtRecordNumber();
}
关于Java泛型参数方法避免代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43135289/