如何指定一类特定的泛型类型?

时间:2014-12-05 04:23:20

标签: java generics casting

我知道以下代码有效。

Object get(final String name);

<T> T get(final String name, final Class<T> type) {
    return type.cast(get(name));
}

有没有办法做到这一点?

get(name, Supplier<ByteBuffer>.class); // compiler doesn't like this.

我目前正在像这样投射原始结果。

(Supplier<ByteBuffer>) get(name);
(Supplier<ByteBuffer>) get(name, Supplier.class);

1 个答案:

答案 0 :(得分:1)

如果您的演员阵容可靠,您可以这样做:

@SuppressWarnings("unchecked")
<T> T getWithCast(final String name) {
    return (T) get(name);
}