小编Sta*_*man的帖子

如何使这个Java方法通用

我有一个java方法,我试图使通用,以便它可以采取2种不同类型的对象的列表作为参数.(如下所示的琐碎例子).这两个不同的对象都将始终具有方法getDate()和getHour().代码如下所示:

public <T> List<T> getListOfStuff(List<T> statistics) {

    List<T> resultList = new ArrayList<T>(statistics.size());

    if(statistics.size() > 0){
        resultList.add(statistics.get(0));

        int date = Integer.parseInt(resultList.get(0).getDate());
        int hour = Integer.parseInt(resultList.get(0).getHour());
    }
    return resultList;
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用.这两行不起作用:

int date = Integer.parseInt(resultList.get(0).getDate());
int hour = Integer.parseInt(resultList.get(0).getHour());
Run Code Online (Sandbox Code Playgroud)

错误说:"方法getDate()未定义类型T"和"方法getHour()未定义类型T"

它向我提出了向方法接收器添加强制转换的建议,但它不会让我使用T而是强制对象名称对我这样对我不起作用:

int date = Integer.parseInt((ObjectName1)resultList.get(0).getDate());
int hour = Integer.parseInt((ObjectName1)resultList.get(0).getHour());
Run Code Online (Sandbox Code Playgroud)

有什么方法可以做我想要的吗?

java oop generics methods generic-collections

2
推荐指数
1
解决办法
76
查看次数

标签 统计

generic-collections ×1

generics ×1

java ×1

methods ×1

oop ×1