Spring mvc でご存知のように、PagedListHolder クラスを使用してページネーション メカニズムを提供できます。ページネーションを提供するメソッドを既に提供しましたが、メソッド内でジェネリック型を渡す方法がわからないため、すべてのページに対してメソッドを宣言することを余儀なくされました
これが私がやったことです:
public class Jobs {
private PagedListHolder<Jobs> jobsPagedList = null;
private JobInfo[]jobs = null;
....
@RequestMapping(value = "jobs/getLatestJobs", method = RequestMethod.GET)
public String provideLatestTweet(HttpServletRequest request){
... checking tasks
jobs = getLatestJobs();
int firstElement = pagingHandlerForLatestJobs(request);
}
次に、ここに pagingHandlerForLatestJobs() 実装があります:
private int pagingHandlerForLatestJobs(HttpServletRequest request){
jobsPagedList = new PagedListHolder<JobInfo>(Arrays.asList(jobs));
//========================================================================//
//How to pass above <JobInfo> classType as a parameter inside my method ? //
//========================================================================//
// ... setting some setting & returning the first page
}
目標を達成するために、以下のメソッド シグネチャを試しました。
private int pagingHandlerForLatestJobs(HttpServletRequest request, Class clazz)
そして、次のような引数を渡してみてください:
int firstElement = pagingHandlerForLatestJobs(request, JobInfo.class)
ただし、内部でクラスを渡しているとき:
new PagedListHolder<clazz>(Arrays.asList(jobs));
実行時エラーが発生しました:
PagedListHolder を型に解決できません
1) 私のコードにはどのような問題がありますか? なぜその JobInfo を内部に渡すことができないのですか?
2) Java Reflection API を使用してこの問題を解決できますか? (はいの場合、どのように?)