public aspect ....
結果をページ分割するために、 a を返す多くのメソッドの結果を操作する(spectj 構文で記述された) アスペクトがありますCollection
。
アドバイスでジェネリックを使用できない (または使用方法がわからない) ため、アドバイスされたメソッドのいずれかを呼び出すたびに警告が表示されます。
unchecked conversion when advice applied at shadow method-call(java.util.Collection ...), expected java.util.Collection<T> but advice uses java.util.Collection [Xlint:uncheckedAdviceConversion]
どうすればこれを取り除くことができますか?
ステファノ
-- アスペクト コードの抜粋を追加
public aspect PaginationSupportAspect extends ServiceSupportAspect {
private static final Logger log = LoggerFactory.getLogger(PaginationSupportAspect.class);
private pointcut paginate(Criteria criteria) : call(Collection org.jcz.persistence.Service+.*(Criteria));
@SuppressWarnings({ "unchecked", "rawtypes" })
Collection around(Criteria criteria, Service service) : paginate(criteria) && target(service) {
log.trace(String.format("Executing <%s> @ <%s>", this.getClass(), thisJoinPoint.toLongString()));
return doPaginate(proceed(criteria, service), criteria.getPagination(), service);
}
/**
*
* @param source
* @param criteria
* @return
*/
private <T extends EntitySupport> Collection<T> doPaginate(Collection<T> source, Pagination pagination, Service<T> service) {
// IMPLEMENTATION OMITTED BECAUSE IT'S QUITE LONG
// What it does is to create another Collection<T> that holds the pagination coordinates (page number, size, count)
// and only the elements of the requested page
}
}
使用例
Collection<MyEntity> entities = myEntityService.findAll(criteria);
そこで警告を受けます