当泛型函数有两种返回类型时,它是什么意思?

时间:2013-07-11 23:02:42

标签: java generics

我正在阅读教程,我发现了这个特殊的代码。

 private <V> V fromJson(HttpRequest request, Class<V> target) throws IOException {
    Reader reader = request.bufferedReader();
    try {
        return GSON.fromJson(reader, target);
    } catch (JsonParseException e) {
        throw new JsonException(e);
    } finally {
        try {
            reader.close();
        } catch (IOException ignored) {
            // Ignored
        }
    }
}

我注意到fromJson函数有两种返回类型?我有泛型的基本概念及其工作原理。我无法理解的是如何指定两种类型以及该函数如何知道在调用它时将值赋给哪种类型。

1 个答案:

答案 0 :(得分:7)

不,只有一种返回类型。 <V>声明V泛型类型参数(它使方法通用),之后的V是实际的返回类型。

这是more information on generic methods in Java