如何在通用方法的情况下避免“未检查或不安全的操作”警告

时间:2017-06-29 12:34:18

标签: java generics casting generic-method

我想避免来自java编译器的“未经检查或不安全的操作”消息,但我不知道如何做,当我有一个泛型方法,并希望从一般的Map返回值。 Map的值应该与泛型方法的泛型类型相同,但我无法弄清楚如何实现。

我创建了一个bitbucket项目来显示问题: https://bitbucket.org/ren-hoek/avoidsuppresswarning/overview

您可以查看以下代码段作为快速概述,但最好克隆项目并在那里进行检查。

public class VehicleServiceImplementation implements VehicleService {

private static Map<Long, VehicleResult> resultMap = new HashMap<Long, VehicleResult>();

static {
    resultMap.put(5L, new VehicleResult<Car>(new Car(5L)));
}

public <CAR extends Car> VehicleResult<CAR> retrieve(final CarRequest request) {
    return resultMap.get(request.getId());
}}

请注意,我无法访问界面本身,所以我无法更改它的签名

请注意,它不是关于如何处理Object返回方法,而是关于如何处理泛型方法。

0 个答案:

没有答案