我知道以下代码有效。
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);
答案 0 :(得分:1)
如果您的演员阵容可靠,您可以这样做:
@SuppressWarnings("unchecked")
<T> T getWithCast(final String name) {
return (T) get(name);
}