Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建泛型groupBy方法_Java_Generics - Fatal编程技术网

Java 创建泛型groupBy方法

Java 创建泛型groupBy方法,java,generics,Java,Generics,我试图从我拥有的对象列表中创建泛型groupBy方法,因此我认为我的方法可以有如下签名: private Map<String, List<T>> groupBy(List<T> list, String fieldName) { private Map groupBy(列表,字符串字段名){ 但它不是编译。缺少类型T,如何修复它以进行编译?我想通过java反射调用字段名(getter)并将其分组并返回一个映射。您需要在开始时定义。有关详细信息,请查看 p

我试图从我拥有的对象列表中创建泛型groupBy方法,因此我认为我的方法可以有如下签名:

private Map<String, List<T>> groupBy(List<T> list, String fieldName) {
private Map groupBy(列表,字符串字段名){
但它不是编译。缺少类型T,如何修复它以进行编译?我想通过java反射调用字段名(getter)并将其分组并返回一个映射。

您需要在开始时定义
。有关详细信息,请查看

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

}
private Map groupBy(列表,字符串字段名){
}
您需要在开头定义
。有关详细信息,请查看

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

}
private Map groupBy(列表,字符串字段名){
}
试试这个

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {
...
private Map groupBy(列表,字符串字段名){
...
试试这个

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {
...
private Map groupBy(列表,字符串字段名){
...

您需要在通用方法中声明类型参数

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {
    //  ^^^ declare T
    //whatever
}
private Map groupBy(列表,字符串字段名){
//声明
//随便
}

您需要在通用方法中声明类型参数

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {
    //  ^^^ declare T
    //whatever
}
private Map groupBy(列表,字符串字段名){
//声明
//随便
}
您需要创建一个(不仅仅是一个接受泛型类型的方法)

只需将
添加到
private
之后:

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {....}
private Map groupBy(列表列表,字符串字段名){..}
您需要创建一个(不仅仅是一个接受泛型类型的方法)

只需将
添加到
private
之后:

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {....}
private Map groupBy(列表列表,字符串字段名){..}

您缺少类型参数的定义:

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {
private Map groupBy(列表,字符串字段名){

您可能还对查看Guava的多重映射感兴趣,尤其是。

您缺少类型参数的定义:

private <T> Map<String, List<T>> groupBy(List<T> list, String fieldName) {
private Map groupBy(列表,字符串字段名){
您可能还对Guava的多重地图感兴趣,尤其是地图