我有一种从数据库中检索记录的搜索方法,我想限制用户只能按名称搜索。我有一个SearchBy
带有搜索参数列表的枚举,对于特定SearchBy
方法,用户只能按某些值进行搜索。
public List<Book> getBooks(SearchBy identifierName,List<String> identifierList) throws UnsupportedOperationException{
List<Book> resultList = new ArrayList<Book>();
if (identifierName.equals(SearchBy.TITLE)) {
//returns list of BookObjects
} else if (identifierName.equals(SearchBy.AUTHOR)) {
//returns list of BookObjects
} else {
throw new UnsupportedOperationException("Books can be retrieved only using book titles or author names");
}
}
除了验证和抛出异常之外,我们如何才能清楚地表明只有值TITLE
和AUTHOR
才允许作为标识符名称的输入?