这通常使我们在使用番石榴的TypeToken时不得不进行“未经检查”的强制转换回Class<T>
:
public <T> T doSomething(T dest) {
@SuppressWarnings("unchecked")
final Class<T> destClass = (Class<T>) dest.getClass();
final TypeToken<T> destType = TypeToken.of(destClass);
...
return dest;
}
为什么要做出这个选择?这是由于类型擦除引起的吗?