0

私が持っているオブジェクトのリストから一般的な groupBy メソッドを作成しようとしているので、私のメソッドには次のような署名がある可能性があります:

private Map<String, List<T>> groupBy(List<T> list, String fieldName) {

しかし、それはコンパイルされていません。タイプ T がありません。コンパイルするにはどうすれば修正できますか? 私は、Javaリフレクションを介してフィールド名(ゲッター)を呼び出し、それをグループ化してマップを返すことを考えました。

4

5 に答える 5

4

最初に定義する必要があります<T>詳細については、公式チュートリアルを確認してください

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {

}
于 2013-08-27T11:44:20.633 に答える
0

ジェネリック メソッドを作成する必要があります(ジェネリック型を受け入れるメソッドだけではありません)...

<T>の後に追加するだけprivateです。

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {....}
于 2013-08-27T11:45:40.420 に答える
0

型パラメーターの定義がありません:

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {

また、Guava のマルチマップ、特にグループ化機能をチェックすることにも興味があるかもしれません。

于 2013-08-27T11:45:54.547 に答える